LINUX.ORG.RU

flex authentication for bot


0

1

Имеется ТЗ сделать веб робота который залогинивается сюда:

https://www.siriusxm.com/player/

Через LiveHTTPHeaders видно что делает flash клиент:

После первого запроса к серверу он получает:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AuthenticationResponse>
  <messages>
    <code>100</code>
    <message>Successful request</message>
  </messages>
  <status>1</status>
  <authenticationChallenge>2c8e3383fc5d1df390ef2fb6d0639df32574ba8ac2fe206a1ecdff2957e77b15</authenticationChallenge>
  <hashMethod>sha256</hashMethod>
  <iterationsCount>4096</iterationsCount>
  <passwordHashType>0</passwordHashType>
  <salt>091b47ae056d6c52990554f7f88da2611695cd164c25016502ff9b74f1628f1e</salt>
</AuthenticationResponse>

Для второго запроса он делает какие то вычисления с паролем и полученными из XML <authenticationChallenge> и <salt>, таким образом он вычисляет <authenticationData> для второго запроса, который выглядит примерно так:

<AuthenticationRequest>
  <userName>leawiowo@emailthe.net</userName>
  <consumerType>ump2</consumerType>
  <subscriberType>SIRIUS_SUBSCRIBER</subscriberType>
  <currency>840</currency>
  <playerIdentification>
    <hardwareIdentification>00000000</hardwareIdentification>
    <ethernetMac>0000CAFEBABE</ethernetMac>
  </playerIdentification>
  <authenticationData>ed4628b531f6aa45ac60c9572518e4f3576f9a99f9161f832555e6e319669f41e9c5047429e61d8eed36e2421a1cd45074aec99de136d8a270fd1b59016b02e1</authenticationData>
</AuthenticationRequest>

Исходников нет, кто то может работал с FLEX и знает алгоритм вычисления authenticationData.


Очень похоже на scram-sha256.

Hope ★★
()
Ответ на: комментарий от tyler19

Дело в том, что для генерации hmac используются некие данные, которым положено быть секретными :) Обычно это закрытый ключ + какие-то рандомные данные (например, параметры запроса). Сервер, получая hmac проделывает аналогичную операцию и сравнивает результат. Без ковыряния в потрохах этой флешки закрытый ключ не достать

boombick ★★★★★
()
22 июля 2013 г.

Я использую Google переводчик, пожалуйста, простите меня, если это трудно читать.

Я пытался это сам и больше не пытается, но я отправлю моя работа здесь для всех желающих.

Я считаю, что это весьма актуальной области к первоначальному вопросу:

sirius.crypto.Crypto.hashValue (HWID + + ethernetMac задача);

Это находится в player.swf после декомпилировано. Однако, есть еще многое предстоит сделать.

Я пытался преобразовать процесс аутентификации в. NET от декомпилированному ActionScript. Я использую VB.NET, который может легко преобразовать в C #.

Вы увидите, что она использует PBKDF2 с HMAC SHA256. Я думаю, что я почти сделал, но у меня возникли проблемы преобразования функции GetResult ().

Соответствующие декомпилированном коде player.swf здесь: http://pastebin.com/DrMxtKDd Полный декомпилированном коде player.swf и NET теста здесь:. http://www.mediafire.com/download/0a3b7amvogu56h1/SiriusTests.rar

ENGLISH: I have been trying this myself and no longer attempting, but I will post my work here for anyone interested.

I believe this is a highly relevant area to the original question:

sirius.crypto.Crypto.hashValue(hwid + ethernetMac + challenge);

This is found in player.swf after being decompiled. However, there is more to be done.

I have been attempting to convert the authentication process in .NET from the decompiled ActionScript. I'm using VB.NET which can easily convert to C#.

You'll see it uses PBKDF2 with HMAC SHA256. I think I'm almost done, but I'm having trouble converting the function getResult().

Relevant decompiled player.swf code here: http://pastebin.com/DrMxtKDd Full decompiled player.swf code and .NET test here: http://www.mediafire.com/download/0a3b7amvogu56h1/SiriusTests.rar

regular_user
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.