Появилась необходимость перенаправить почту с большого количества яндекс-ящиков на один конкретный.
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; |
Вот только не могу понять как это можно использовать.
Куда дальше копать не могу сам разобраться, не хватает опыта. Помогите пожалуйста разобраться.
Игорь_Vasinsky
8.11.2012 - 15:00
Цитата |
~~(Math.random() * 256)) |
:lol:
не важно как он формируется))
формируй так
md5(microtime());
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky, ага, если бы все так просто. Я пробовал через перехват запроса через tamper data поменять только одну цифру в этом хеше - и все - запрос уже не проходит. Значит не смотря на то что этот параметр формируется случайно, он как-то проверяется.
Игорь_Vasinsky
8.11.2012 - 15:30
Цитата |
формируется случайно, |
Цитата |
он как-то проверяется. |
Цитата |
Функция Math.random (JavaScript) Эта тема еще не получила оценку - Оценить эту тему Возвращает псевдослучайное число между 0 и 1.
Math.random( ) Заметки Псевдослучайно число создается в диапазоне от 0 (включительно) до 1 (не включая 1), то есть возвращенное число может быть нулем, но всегда будет меньше единицы. Генератор случайных чисел автоматически инициируется при первой загрузке JavaScript. |
http://msdn.microsoft.com/ru-ru/library/41...9(v=vs.94).aspxты наверно сам понял - что ахинею какую то сказал.
как можно сгенерировать случайное число и сравнивать его с чём то?
оно же СЛУЧАЙНЕО СГЕНЕРИРОВАННОЕ
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
8.11.2012 - 15:31
единственное что может проверяться - это длина
а там 32 символ - идентично хешу возращаемому md5()
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Цитата (Игорь_Vasinsky @ 8.11.2012 - 11:30) |
Цитата | формируется случайно, |
Цитата | он как-то проверяется. |
Цитата | Функция Math.random (JavaScript) Эта тема еще не получила оценку - Оценить эту тему Возвращает псевдослучайное число между 0 и 1.
Math.random( ) Заметки Псевдослучайно число создается в диапазоне от 0 (включительно) до 1 (не включая 1), то есть возвращенное число может быть нулем, но всегда будет меньше единицы. Генератор случайных чисел автоматически инициируется при первой загрузке JavaScript. |
http://msdn.microsoft.com/ru-ru/library/41...9(v=vs.94).aspxты наверно сам понял - что ахинею какую то сказал. как можно сгенерировать случайное число и сравнивать его с чём то? оно же СЛУЧАЙНЕО СГЕНЕРИРОВАННОЕ |
Ну почему же: например сгенерировали не совсем случайно, а на основе какого-то входного параметра и записали куда-то. Потом сравниваем входной параметр с этим записанным. Соотвественно если я тоже сгенерю случайно - мой уже не будет совпадать с тем сохраненным где-то на сервере яндекса.
Игорь_Vasinsky
8.11.2012 - 16:02
Цитата |
(Math.random() * 256) |
перевожу
случайное число умножаем на 256
получилось ожидаемое число?
варианты ответов:
-да, я его и ждал)
- нет... ох-ть... как неожиданно
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_VasinskyМне не совсем понятен ваш юмор, но как вы тогда объясните следующее:
1. Делаю в браузере все действия необходимые для изменения переадресации почты, то есть:
Почта → Настройка → Правила обработки входящей почты → Создать правило → прописываю ящик для переадресации → Создать правило. В результате все ок - ящик для переадресаации прописывается.
2. Удаляю это правило (чтобы все начать заново), делаю все тоже кроме нажатия последней кнопки, то есть: Почта → Настройка → Правила обработки входящей почты → Создать правило → прописываю ящик для переадресации, после чего запускаю Tamper Data, нажимаю "Запустить перехват", нажимаю кнопку "Создать правило", выскакивает предложение вмешаться в запрос:
нажимаю "Вмешаться", после чего вижу все post-данные, которые можно модифицировать:
Меняю только одну цифру в поле _connection_id и нажимаю ОК - в результате post-запрос не проходит, ящик для переадресации не прописывается.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.