Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   Автоинклюдер от меня (https://forum.antichat.xyz/showthread.php?t=79411)

n0ne 02.08.2008 09:16

Автоинклюдер от меня
 
Emo auto-includer



Для начала расскажу как пользоваца (хотя, в принципе, всё интуитивно понятно) :cool:


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


Здесь ситуация сложнее, ибо вставить свои теги или вообще какой-то текст нет возможности. Проблема решилась с помощью этакой гадалки :D Точнее функции 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.


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

Приму любые пожелания и критику. Желательно на чем-то основанные :) Все баги или недочеты - в тему или в личку, по мере возможности буду исправлять и обновлять.

Если есть какие-то идеи по реализации проверки правильности пути в локальном инклюде - велком в асю или в личку.

Признаюсь, стили не мои. Те кто в теме - поймут откуда ;)


если не туда запостил - перенесите

[Raz0r] 02.08.2008 21:42

Скрипт работает =)

Цитата:

Возьмем такую инъекцию:
если брать инъекцию из примера, то полей не 7, а 8 (посчитай)

Цитата:

После обработки это дело примет такой вид:
а здесь вообще 9 полей =)

фича Local include в идеале должна принимать всего один параметр - URL с инклудом, количество папок можно определить самим скриптом (например перебирать путь до /etc/passwd или C:/boot.ini или брать из ошибки PHP, если таковая имеется)

Цитата:

число взял не из головы
а откуда если не секрет? =)

n0ne 03.08.2008 00:32

[Raz0r],

Цитата:

если брать инъекцию из примера, то полей не 7, а 8 (посчитай)
Нда, немного просчитался :) попроавил

Цитата:

а здесь вообще 9 полей =)
Вот столько я хз где ты насчитал))


Цитата:

фича Local include в идеале должна принимать всего один параметр - URL с инклудом, количество папок можно определить самим скриптом (например перебирать путь до /etc/passwd или C:/boot.ini или брать из ошибки PHP, если таковая имеется)
Это всё можно реализовать, только нужно ли? Лишняя нагрузка на сервер, лишнее время работы скрипта и всё прочее. Помимо простоты использования скрипт должен обладать быстродействием :) А если не хочешь точности - напиши там 200 и всё))

Цитата:

а откуда если не секрет? =)
Цитата:

опытным путем нашел более-менее оптимальное

~!DoK_tOR!~ 03.08.2008 04:25

Потестил всё пашет без накладок ) Молодец n0ne )

n0ne 03.08.2008 04:27

Цитата:

Сообщение от ~!DoK_tOR!~
Потестил всё пашет без накладок ) Молодец n0ne )

Спасибо :) Всегда приятно, когда труд оценивают положительно :cool:

Don1=2 03.08.2008 15:02

хорошая штука, интересуют сорцы )

n0ne 03.08.2008 16:47

Don1=2, выслал в личку) спасибо за положительный отзыв :)

Redyps 05.08.2008 17:39

протестил
тузла с лоад_файл работает хорошо, а вот локал инклуд не нашёл ни одного пути, даж /etc/passwd =)
Вобщем идея и реализация хорошая, буду ждать обновления функции поиска при инклуде, ибо пока сыровато

drive_pan 05.08.2008 17:43

Молодца, просто супер !!!

Piflit 05.08.2008 17:52

для mysql load_file() было похожее http://forum.antichat.ru/showthread.php?p=582624

LEE_ROY 05.08.2008 18:03

замечательно :) залей плз сорец

n0ne 05.08.2008 20:51

Цитата:

Сообщение от Redyps
а вот локал инклуд не нашёл ни одного пути, даж /etc/passwd =)

Надо будет число подправить, с которым сверяеца)

Цитата:

Сообщение от drive_pan
Молодца, просто супер !!!

Спасибо)

Цитата:

Сообщение от Piflit
для mysql load_file() было похожее

Круто!!


LEE_ROY, скинул в личку)

presidentua 08.08.2008 21:42

Протестил - понравилось. А можно мне в личку ссылку на исходники - все таки лучше я поставлю на своем серваке, а то на том ломаном где он сейчас неизвестно сколько пролежит, а на своем - вечно! )

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

n0ne 08.08.2008 22:34

presidentua, скинул сорцы в личку :)

pampom 22.04.2009 02:54

перезалейте

Spyder 22.04.2009 13:51

ща свяжусь с автором, мб зальёт

Tigger 20.07.2009 20:42

Перезалейте =\

The_HuliGun 21.07.2009 11:17

Код:

http://rapidshare.com/files/249917424/emof.rar.html
Сорець немного переписал, копирайты оставил.

P.S.
n0ne Последняя активность: 18.07.2009 20:44
Может автор подсуетиться, и его творение перенесут в избранное.
Пользовался все время, не было аналогов до последнего времени.

n0ne 23.07.2009 01:37

The_HuliGun, спасибо за отзыв :) А на счет подсуетица - уже пытался)) сказали, что не достойно оно быть в избранном)

pampom 31.08.2009 23:46

Перезалейте у кого есть

inspektor 18.09.2009 00:51

перезалейте!

n0ne 29.10.2009 03:54

Цитата:

http://webfile.ru/4042908
С опозданием, захожу редко :)


Время: 10:57