Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

02.08.2008, 09:16
|
|
Постоянный
Регистрация: 01.01.2007
Сообщений: 796
Провел на форуме: 2693408
Репутация:
861
|
|
Автоинклюдер от меня
Emo auto-includer
Для начала расскажу как пользоваца (хотя, в принципе, всё интуитивно понятно)
I. Manual
load_file() include via remote MySQL-Injection
пример:
Возьмем такую инъекцию:
http://www.vulnsite.com/vulnfolder/vulnscript.php?id=-1/**/union/**/select/**/1,2,3,load_file('config.conf'),5,6,7/*
В форму вбиваем:
Код:
URL: http://www.vulnsite.com/vulnfolder/vulnscript.php?id=-1
Number of fields: 7
Output field: 4
Local include
пример:
Возьмем такой инклюд:
http://www.vulnsite.com/vulnfolder/vulnscript?id=../../../../../../../config.conf
В форму вбиваем:
Код:
URL: http://www.vulnsite.com/vulnfolder/vulnscript?id=
Number of folders: 7
Думаю, здесь всё понятно Далее расскажу принцип работы.
II. Principum
load_file() include via remote MySQL-Injection
Объясню опять же на примере. Возьмем ту же инъекцию:
http://www.vulnsite.com/vulnfolder/vulnscript.php?id=-1/**/union/**/select/**/1,2,3,load_file('config.conf'),5,6,7/*
После обработки это дело примет такой вид:
http://www.vulnsite.com/vulnfolder/vulnscript.php?id=-1/**/union/**/select/**/1,2,3,concat(0x3c686572653e45584953543c2f686572653 e,load_file('config.conf')),5,6,7/*
Где 0x3c686572653e45584953543c2f686572653e - <here>EXIST</here>
Ну, из этого понятно, что если скрипт видит EXIST между этими тегами, значит путь существует.
Local include
Здесь ситуация сложнее, ибо вставить свои теги или вообще какой-то текст нет возможности. Проблема решилась с помощью этакой гадалки Точнее функции similar_text(). Вот описание функции - ttp://us2.php.net/similar_text.
Возьмем тот же инклюд:
http://www.vulnsite.com/vulnfolder/vulnscript?id=../../../../../../../config.conf
Скрипт создает заведомо ложный запрос и каждой итерацией оценивает его похожесть на предполагаемый путь. Если похожесть меньше 80, то путь считаеца существующим (число взял не из головы, а опытным путем нашел более-менее оптимальное). Так что если будет большой процент несовпадений - сообщите 
III. Outro
Также в процессе написания и отлаживания возник вопрос обработки больших файлов (спасибо Spyder), таких как access_log или error_log в апаче, которые могут иметь довольно большие размеры и, соответственно, сильно тормозить работу скрипта. Решение нашел, на мой взгляд, единственное - грузить только часть страницы. За "часть" был взят размер в 80КБ, которого, по-моему, должно вполне хватить
Собственно, вот сам скрипт:
Код:
http://goportacaribe.com/tmp/index.php
Файл путей отдельно можно взять в той же папке - path.txt. (Пути были собраны здесь - https://forum.antichat.ru/thread49775.html и несколько путей добавил сам)
IV. P.S.
Почему не выкладываю исходники? Я за опенсорс, но и за грамотность кода. Просто стыдно выкладывать этот ужас Ибо мои познания в пхп очень далеки от совершенства. Но если кому-то действительно нужно или интересно - напишите в личку, залью куда-нибудь.
Приму любые пожелания и критику. Желательно на чем-то основанные Все баги или недочеты - в тему или в личку, по мере возможности буду исправлять и обновлять.
Если есть какие-то идеи по реализации проверки правильности пути в локальном инклюде - велком в асю или в личку.
Признаюсь, стили не мои. Те кто в теме - поймут откуда
если не туда запостил - перенесите
Последний раз редактировалось n0ne; 03.08.2008 в 00:29..
|
|
|

02.08.2008, 21:42
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме: 3244717
Репутация:
1980
|
|
Скрипт работает =)
если брать инъекцию из примера, то полей не 7, а 8 (посчитай)
После обработки это дело примет такой вид:
а здесь вообще 9 полей =)
фича Local include в идеале должна принимать всего один параметр - URL с инклудом, количество папок можно определить самим скриптом (например перебирать путь до /etc/passwd или C:/boot.ini или брать из ошибки PHP, если таковая имеется)
а откуда если не секрет? =)
|
|
|

03.08.2008, 00:32
|
|
Постоянный
Регистрация: 01.01.2007
Сообщений: 796
Провел на форуме: 2693408
Репутация:
861
|
|
[Raz0r],
если брать инъекцию из примера, то полей не 7, а 8 (посчитай)
Нда, немного просчитался  попроавил
а здесь вообще 9 полей =)
Вот столько я хз где ты насчитал))
фича Local include в идеале должна принимать всего один параметр - URL с инклудом, количество папок можно определить самим скриптом (например перебирать путь до /etc/passwd или C:/boot.ini или брать из ошибки PHP, если таковая имеется)
Это всё можно реализовать, только нужно ли? Лишняя нагрузка на сервер, лишнее время работы скрипта и всё прочее. Помимо простоты использования скрипт должен обладать быстродействием  А если не хочешь точности - напиши там 200 и всё))
а откуда если не секрет? =)
опытным путем нашел более-менее оптимальное
|
|
|

03.08.2008, 04:25
|
|
Banned
Регистрация: 10.11.2006
Сообщений: 829
Провел на форуме: 2634544
Репутация:
1559
|
|
Потестил всё пашет без накладок ) Молодец n0ne )
|
|
|

03.08.2008, 04:27
|
|
Постоянный
Регистрация: 01.01.2007
Сообщений: 796
Провел на форуме: 2693408
Репутация:
861
|
|
Сообщение от ~!DoK_tOR!~
Потестил всё пашет без накладок ) Молодец n0ne )
Спасибо  Всегда приятно, когда труд оценивают положительно 
|
|
|

03.08.2008, 15:02
|
|
Участник форума
Регистрация: 10.09.2007
Сообщений: 131
Провел на форуме: 829460
Репутация:
170
|
|
хорошая штука, интересуют сорцы )
|
|
|

03.08.2008, 16:47
|
|
Постоянный
Регистрация: 01.01.2007
Сообщений: 796
Провел на форуме: 2693408
Репутация:
861
|
|
Don1=2, выслал в личку) спасибо за положительный отзыв 
|
|
|

05.08.2008, 17:39
|
|
Banned
Регистрация: 17.07.2008
Сообщений: 14
Провел на форуме: 81162
Репутация:
27
|
|
протестил
тузла с лоад_файл работает хорошо, а вот локал инклуд не нашёл ни одного пути, даж /etc/passwd =)
Вобщем идея и реализация хорошая, буду ждать обновления функции поиска при инклуде, ибо пока сыровато
|
|
|

05.08.2008, 17:43
|
|
Участник форума
Регистрация: 18.10.2007
Сообщений: 251
Провел на форуме: 1434980
Репутация:
247
|
|
Молодца, просто супер !!!
|
|
|

05.08.2008, 17:52
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
для mysql load_file() было похожее http://forum.antichat.ru/showthread.php?p=582624
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|