Платим за решение одной сложной задачи [PHP, Javascript]

Solo_by
На сайте с 19.06.2009
Offline
220
2172

Суть проблемы формулируется так - http://php . ru/forum/viewtopic.php?t=42449

Появилась необходимость перенаправить почту с большого количества яндекс-ящиков на один конкретный.

POST-запрос, отловленный Tamper Data выглядит так:

POSTDATA=_handlers=do-filters-add%2Cfilters&fid=&letter=nospam&attachment=&logic=0&field1=from&field2=1&field3=&cliker=forward&forward_address=stalkerd86%40gmail.com&forward_with_store=on&stop=&filter_name=%D0%9C%D0%BE%D1%91+%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE&_connection_id=3a40f0bfaec6b13ef3bf74cb53a984ee&_ckey=P1mDrcRB7OiQRWBcWb0Ue4ly8y%2Fg%2B8Zqyh1dL06OeAU%3D&_locale=ru&_timestamp=1352362971612&_product=RUS



С параметрами проблем нет, кроме одного, который генерирует как я понял javascript.

Тут из сменных параметров:
forward_address=stalkerd86%40gmail.com - мыло куда перенапрвляем
_connection_id=3a40f0bfaec6b13ef3bf74cb53a984ee - где взять этот параметр я не знаю, выпарсить его негде - его нет ни на одной странице по пути к страницы с которой отправляется POST-запрос.
ckey=P1mDrcRB7OiQRWBcWb0Ue4ly8y - какой-то токен, который с легкостью выпарсивается с исходного кода страницы
_timestamp=1352362971612 - это time() с миллисекундами, то есть легко генерится



С помощью JavaScript deobfuscator удалось выяснить как генерится этот _connection_id:
var g = "";for (var y = 0; y < 16; y++) {g += (~~(Math.random() * 256)).toString(16);}s.connection_id = g;


Вот только не могу понять как это можно использовать.

Куда дальше копать не могу сам разобраться, не хватает опыта. Помогите пожалуйста разобраться.

Платим хорошие деньги за её решение.

Нужно узнать. Откуда берется _connection_id ??

dkameleon
На сайте с 09.12.2005
Offline
386
#1
Solo_by:
Платим хорошие деньги за её решение.

заходим в настройки: https://mail.yandex.ua/neo2/#setup/filters-create

включаем переадресацию.

Дизайн интерьера (http://balabukha.com/)
edogs software
На сайте с 15.12.2005
Offline
775
#2
Solo_by:
Суть проблемы формулируется так - http://php . ru/forum/viewtopic.php?t=42449
Платим хорошие деньги за её решение.
Нужно узнать. Откуда берется _connection_id ??

Судя по тому что Вы написали - он генерируется яваскриптом. Потом скорее всего так или иначе отправляется на сервер, допустим в cookies - если со страницы не выпарсит. Впрочем тут смотреть надо, если будет актуально - напишите в среду вечером нам в асю, обсудим сотрудничество.

dkameleon:
заходим в настройки: https://mail.yandex.ua/neo2/#setup/filters-create
включаем переадресацию.

ТС именно это делает, просто ему нужно это автоматизировать для "большого количества яндекс-ящиков ".

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
HM
На сайте с 14.01.2012
Offline
243
#3

сделал, как с тобой связаться?

dkameleon
На сайте с 09.12.2005
Offline
386
#4
edogs:
ТС именно это делает, просто ему нужно это автоматизировать для "большого количества яндекс-ящиков ".

"большого" - понятие растяжимое.

Solo_by
На сайте с 19.06.2009
Offline
220
#5

Спасибо hakuna matata за решение проблемы.

Может кому пригодится:

да ты будешь смеяться, он рандомно генерится один раз при заходе в акк и все.
простой быдлокод для примера, работает. ну там поправьте уже для себя, как надо.
<?php
function curlget($url, $ref, $cookie) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function curlpost($url, $ref, $postinfo, $cookie) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}

$cf = 'cookie.txt';
$login = 'login';
$passwd = 'passwd';
$mailname = 'taxaxaslazaxatatat@gmail.com';
//$connection_id = '9164a37798742a45e45c2366cc116c9';
$connection_id = substr(md5(rand(1, 100000)), 0, 31);
//echo $connection_id;
$loginPostData = 'login=' . $login . '&passwd=' . $passwd . '&twoweeks=yes&twoweeks=no&timestamp=1374583865598';
$loginData = curlpost('https://passport.yandex.ru/passport?mode=auth&retpath=https%3A%2F%2Fmail.yandex.ru', 'http://www.yandex.ru/', $loginPostData, $cf);
preg_match('#(?<="ckey":")[^"]*#', $loginData, $ckey);
//echo $ckey[0];
$ckey = urlencode($ckey[0]);
$mailPostData = '_handlers=do-filters-add%2Cfilters&fid=&letter=nospam&attachment=&logic=0&field1=from&field2=1&field3=name&cliker=forward&forward_address=' . $mailname . '&forward_with_store=&stop=&filter_name=%D0%9C%D0%BE%D1%91+%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE&password=' . $passwd . '&_connection_id=' .$connection_id . '&_ckey=' . $ckey . '&_locale=ru&_timestamp=1374584423075&_product=RUS';
echo curlpost('https://mail.yandex.ru/neo2/handlers/handlers3.jsx?_h=do-filters-add,filters', 'https://mail.yandex.ru/neo2/', $mailPostData, $cf);
unlink($cf);
?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий