Показать сообщение отдельно

  #14  
Старый 26.05.2011, 21:14
Expl0ited
Познавший АНТИЧАТ
Регистрация: 16.07.2010
Сообщений: 1,022
С нами: 8328566

Репутация: 935


По умолчанию

Кстати, хотелось бы обратить внимание на заметки Електа и Шанкара в теме: /thread51096.html

Цитата:
Сообщение от Elekt  
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]<font color="White">В продолжение "<font color="YellowGreen">Инклуд временного файла через PHPINFO()</font>".

Поковырялся я тут с сабжемЕсть что вам рассказать.

Действительновременный файл удаляется намного раньше чем мы его успеваем считать с вывода <font color="YellowGreen">phpinfo()</font>. 

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

Пусть есть сервер <font color="red">www.target.com</font>

На нем есть вывод <font color="YellowGreen">phpinfo()</font> - <font color="Red">http://www.target.com/i.php</font>

А также инклуд - <font color="Red">http://www.target.com/index.php?page=[LFI]</font>

Казалось бымы не можем увеличить время выполнения i.php а значит ничего не выйдет.

Но это не так.

Мы можем подключить локально <font color="YellowGreen">i.php</fontчерез имеющийся инклуда поскольку после инклуда есть еще код то мы получаем бонусное время задержкикоторого при удаче может вполне хватить!

<
font color="Red">http://www.target.com/index.php?page=../../../../../../../www/site/htdocs/public_html/i.php%00</font>

Тогда отправив на такой URL пост-пакет с файлом содержащем PHP-кодпострочно считываем ответ.

И как только получаем имя временного файла тянем время не разрывая коннектаи тут же параллейно инклудим загруженный временный файл с PHP-кодом.

Теоритически атаку можно применить к большому числу движковимеющих инклуд и вывод <font color="YellowGreen">phpinfo()</fontв админке.

Например тотже <font color="YellowGreen">phplive</font>, где при <font color="YellowGreen">magic_quotes=on</fontили без доступа к <font color="YellowGreen">/super</fontнельзя загрузить шелл.

Простенький эксплоитавтоматизирующий процессприлагается.

Я оставил закоментированными дополнительные поля если потребуется их можно легко заполнить необходимыми данныминапример кукисом или реферером.

Эксперимент успешно проведен в локалке на файле с вот таким кодом:

1.php

</font>[COLOR="#007700"][/COLOR][/COLOR
2.php

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
Лог работы для примера:

Код:
perl phpinfo_lfi.pl" -p "/var/www/html/1.php" -l "http://192.168.1.200/2.php?page="

[+] HOST    "192.168.1.200"
[+] PHPINFO "/var/www/html/1.php"
[+] LFI     "http://192.168.1.200/2.php?page="

[-1-] Temp shell uploading. Please wait... Ok!
[-2-] Searching temp path to shell... Ok!
[+++] Temp path to shell found: "/tmp/phph3444w"
[-3-] Try to create new shell... Ok!
[+++] New shell created successfully: "/tmp/phph3444wshell"

[i] http://192.168.1.200/2.php?page=../../../../../../../../../../..
/../tmp/phph3444wshell
По идее надо испытать на админках в разных двигах, где выполняются условия.[/COLOR]
Вполне работоспособный метод несмотря на дату опубликования. Правда вся сложность заключается именно в том, что после инклуда должен идти код, на интерпретацию которого уходит некоторое время, которое даст шанс подключить залитый нами шелл. Вот сплоит:

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]"[/COLOR][COLOR="#007700"];

for([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"][/COLOR][/COLOR
 
Ответить с цитированием