Emo auto-includer Для начала расскажу как пользоваца (хотя, в принципе, всё интуитивно понятно) I. Manual load_file() include via remote MySQL-Injection пример: Возьмем такую инъекцию: В форму вбиваем: Code: URL: http://www.vulnsite.com/vulnfolder/vulnscript.php?id=-1 Number of fields: 7 Output field: 4 Local include пример: Возьмем такой инклюд: В форму вбиваем: Code: URL: http://www.vulnsite.com/vulnfolder/vulnscript?id= Number of folders: 7 Думаю, здесь всё понятно Далее расскажу принцип работы. II. Principum load_file() include via remote MySQL-Injection Объясню опять же на примере. Возьмем ту же инъекцию: После обработки это дело примет такой вид: Где 0x3c686572653e45584953543c2f686572653e - <here>EXIST</here> Ну, из этого понятно, что если скрипт видит EXIST между этими тегами, значит путь существует. Local include Здесь ситуация сложнее, ибо вставить свои теги или вообще какой-то текст нет возможности. Проблема решилась с помощью этакой гадалки Точнее функции similar_text(). Вот описание функции - ttp://us2.php.net/similar_text. Возьмем тот же инклюд: Скрипт создает заведомо ложный запрос и каждой итерацией оценивает его похожесть на предполагаемый путь. Если похожесть меньше 80, то путь считаеца существующим (число взял не из головы, а опытным путем нашел более-менее оптимальное). Так что если будет большой процент несовпадений - сообщите III. Outro Также в процессе написания и отлаживания возник вопрос обработки больших файлов (спасибо Spyder), таких как access_log или error_log в апаче, которые могут иметь довольно большие размеры и, соответственно, сильно тормозить работу скрипта. Решение нашел, на мой взгляд, единственное - грузить только часть страницы. За "часть" был взят размер в 80КБ, которого, по-моему, должно вполне хватить Собственно, вот сам скрипт: Code: http://goportacaribe.com/tmp/index.php Файл путей отдельно можно взять в той же папке - path.txt. (Пути были собраны здесь - https://forum.antichat.ru/thread49775.html и несколько путей добавил сам) IV. P.S. Почему не выкладываю исходники? Я за опенсорс, но и за грамотность кода. Просто стыдно выкладывать этот ужас Ибо мои познания в пхп очень далеки от совершенства. Но если кому-то действительно нужно или интересно - напишите в личку, залью куда-нибудь. Приму любые пожелания и критику. Желательно на чем-то основанные Все баги или недочеты - в тему или в личку, по мере возможности буду исправлять и обновлять. Если есть какие-то идеи по реализации проверки правильности пути в локальном инклюде - велком в асю или в личку. Признаюсь, стили не мои. Те кто в теме - поймут откуда если не туда запостил - перенесите
Скрипт работает =) если брать инъекцию из примера, то полей не 7, а 8 (посчитай) а здесь вообще 9 полей =) фича Local include в идеале должна принимать всего один параметр - URL с инклудом, количество папок можно определить самим скриптом (например перебирать путь до /etc/passwd или C:/boot.ini или брать из ошибки PHP, если таковая имеется) а откуда если не секрет? =)
[Raz0r], Нда, немного просчитался попроавил Вот столько я хз где ты насчитал)) Это всё можно реализовать, только нужно ли? Лишняя нагрузка на сервер, лишнее время работы скрипта и всё прочее. Помимо простоты использования скрипт должен обладать быстродействием А если не хочешь точности - напиши там 200 и всё))
протестил тузла с лоад_файл работает хорошо, а вот локал инклуд не нашёл ни одного пути, даж /etc/passwd =) Вобщем идея и реализация хорошая, буду ждать обновления функции поиска при инклуде, ибо пока сыровато
Протестил - понравилось. А можно мне в личку ссылку на исходники - все таки лучше я поставлю на своем серваке, а то на том ломаном где он сейчас неизвестно сколько пролежит, а на своем - вечно! ) Также хотелось бы добавить возможность использовать соксы, а то палить лишний раз айпишник не хочется.
Code: http://rapidshare.com/files/249917424/emof.rar.html Сорець немного переписал, копирайты оставил. P.S. n0ne Последняя активность: 18.07.2009 20:44 Может автор подсуетиться, и его творение перенесут в избранное. Пользовался все время, не было аналогов до последнего времени.
The_HuliGun, спасибо за отзыв А на счет подсуетица - уже пытался)) сказали, что не достойно оно быть в избранном)