Renz
Осваивающий
- Сообщения
- 63
- Репутация
- 37
Не получается авторизоваться в личном кабинете на сайте МТС через POST запрос.
:stars:
Суть:
1.получаем страницу авторизации (GET)
2. получаем cookies в ответе сервера
3. получаем inputs
4. отправляем запрос на авторизацию(POST)
5. вываливается ошибка : Отказано в доступе
POST запрос в Google Chrome(скрыты реальные логин и пароль):
Код AutoIt:
:stars:
Суть:
1.получаем страницу авторизации (GET)
2. получаем cookies в ответе сервера
3. получаем inputs
4. отправляем запрос на авторизацию(POST)
5. вываливается ошибка : Отказано в доступе
POST запрос в Google Chrome(скрыты реальные логин и пароль):
Код:
Request URL:https://login.mts.ru/amserver/UI/Login?gx_charset=UTF-8&auth-status=0&service=moipodpiski&goto=http://moipodpiski.mts.ru/smssubscriptionsstart.aspx
Request Method:POST
Status Code:302 Moved Temporarily
Request Headersview parsed
POST /amserver/UI/Login?gx_charset=UTF-8&auth-status=0&service=moipodpiski&goto=http://moipodpiski.mts.ru/smssubscriptionsstart.aspx HTTP/1.1
Host: login.mts.ru
Connection: keep-alive
Content-Length: 403
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://login.mts.ru
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://login.mts.ru/amserver/UI/Login?gx_charset=UTF-8&auth-status=0&service=moipodpiski&goto=http://moipodpiski.mts.ru/smssubscriptionsstart.aspx
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: JSESSIONID=A95837C1BA758B3B98C11FDE0274CBCF; AMAuthCookie=AQIC5wM2LY4SfcyC19WIeK-tBr1wvEE0szq5_RN6Fz-lbxI.*AAJTSQACMDQAAlNLAAkzNTY2NTExMDQAAlMxAAIwMw..*; amlbcookie=01
Query String Parametersview sourceview URL encoded
gx_charset:UTF-8
auth-status:0
service:moipodpiski
goto:http://moipodpiski.mts.ru/smssubscriptionsstart.aspx
Form Dataview parsed
IDToken1=9121234567&IDToken2=123453&IDButton=Submit&goto=http%3A%2F%2Fmoipodpiski.mts.ru%2Fsmssubscriptionsstart.aspx&encoded=false&loginURL=%2Famserver%2FUI%2FLogin%3Fgx_charset%3DUTF-8%26service%3Dmoipodpiski%26goto%3Dhttp%253A%252F%252Fmoipodpiski.mts.ru%252Fsmssubscriptionsstart.aspx%26auth-status%3D0&csrf.sign=54e545420722f90d974a65cca005504b4d491d350141f7daade126d02719f451&csrf.ts=1395300542208
Response Headersview source
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:https://oauth.mts.ru
Cache-Control:no-cache, no-store
Connection:keep-alive
Content-Length:577
Content-Security-Policy:default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; frame-src http://*.mts.ru https://*.mts.ru http://*.mts.ru:80 https://*.mts.ru:443; report-uri /amserver/csp-report;
Content-Type:text/html;charset=utf-8
Date:Thu, 20 Mar 2014 07:32:22 GMT
Expires:Wed, 31 Dec 1969 23:59:59 GMT
Location:http://moipodpiski.mts.ru/smssubscriptionsstart.aspx
Pragma:no-cache
Server:nginx/1.3.14
Set-Cookie:AMAuthCookie=LOGOUT; Domain=.mts.ru; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
Set-Cookie:MTSWebSSO=AQIC5wM2LY4SfcyC19WIeK-tBr1wvEE0szq5_RN6Fz-lbxI.*AAJTSQACMDQAAlNLAAkzNTY2NTExMDQAAlMxAAIwMw..*;path=/;domain=.mts.ru;httponly
Set-Cookie:login.mts.ru.logout=0; Version=1; Domain=.mts.ru; Path=/
Set-Cookie:IHLink=https://ihelper.nnov.mts.ru/selfcare/welcome.aspx; Domain=.mts.ru; Expires=Thu, 01-Jan-2114 00:00:10 GMT; Path=/
X-Content-Security-Policy:default-src 'self' 'unsafe-inline'; img-src 'self' data:; frame-src http://*.mts.ru https://*.mts.ru http://*.mts.ru:80 https://*.mts.ru:443; options inline-script; report-uri /amserver/csp-report;
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-node:02b01
X-node:d1
X-Powered-By:openam.org.ru/1.0
X-rev:4034
X-WebKit-CSP:allow 'self'; options inline-script; report-uri /amserver/csp-report;
X-XSS-Protection:1; mode=block
Код AutoIt:
Код:
$sLoginMTS = "9121234567"
$sPassMTS = "12345"
Global $oErrorHandler
Func ErrorFunc()
MsgBox(16, 'Ошибка', $oErrorHandler.description & " - " & $oErrorHandler.description)
Exit 2
EndFunc
__GetDataSubscription($sLoginMTS, $sPassMTS)
Func __GetDataSubscription($sLoginMTS = "", $sPassMTS = "")
Local $sIDToken1 = ""
Local $sIDToken2 = ""
Local $sIDButton = "Submit"
Local $sgoto = "http%3A%2F%2Fmoipodpiski.mts.ru%2Fsmssubscriptionsstart.aspx"
Local $sencoded = "false"
Local $sloginURL = "%2Famserver%2FUI%2FLogin%3Fgx_charset%3DUTF-8%26service%3Dmoipodpiski%26goto%3Dhttp%253A%252F%252Fmoipodpiski.mts.ru%252Fsmssubscriptionsstart.aspx%26auth-status%3D0"
Local $scsrfsign = ""
Local $scsrfts = ""
Local $sURL1 = 'https://login.mts.ru/amserver/UI/Login?gx_charset=UTF-8&auth-status=0&service=moipodpiski&goto=http://moipodpiski.mts.ru/smssubscriptionsstart.aspx'
Local $sURL2 = 'https://login.mts.ru/amserver/UI/Login?gx_charset=UTF-8&auth-status=0&service=moipodpiski&goto=http://moipodpiski.mts.ru/smssubscriptionsstart.aspx'
Local $sAllResponseHeaders = ''
Local $sCOOKIES = ''
$oErrorHandler = ObjEvent('AutoIt.Error', 'ErrorFunc')
Local $oRequest = ObjCreate('MSXML2.XMLHTTP')
If Not IsObj($oRequest) Then
Return SetError($_IEStatus_InvalidDataType, 1, 0)
EndIf
Local $oHtmlFile = ObjCreate('HtmlFile')
If Not IsObj($oHtmlFile) Then
Return SetError($_IEStatus_InvalidDataType, 1, 0)
EndIf
$oRequest.Open('GET', $sURL1, 0)
$oRequest.SetRequestHeader('Connection','keep-alive')
$oRequest.Send()
;парсим ответ сервера, получаем cookies
$aResponseHeaders = StringSplit ( $oRequest.getAllResponseHeaders(), @CRLF )
For $i = 1 To $aResponseHeaders[0]
If StringLeft( $aResponseHeaders[$i], 10) = 'Set-Cookie' Then
$iPozSim = StringInStr( $aResponseHeaders[$i], ';')
$sCOOKIES &= StringMid($aResponseHeaders[$i],13, $iPozSim - 13 ) & '; '
EndIf
Next
$sCOOKIES = StringMid ($sCOOKIES, 1, StringLen($sCOOKIES) - 2)
ConsoleWrite($sCOOKIES & @CRLF);
; получаем настройки формы
$sData = $oRequest.responsetext
$oHtmlFile.designMode = 'on'
$oHtmlFile.Write($sData)
$oElement = $oHtmlFile.getElementByID('IDButton')
If Not IsObj($oElement) Then
Return SetError($_IEStatus_NoMatch, 2, 0)
EndIf
;~ ConsoleWrite($sData & @CRLF);
$oElemForm = $oElement.form
$oInputs = $oElemForm.getElementsByTagName('input')
For $oInput In $oInputs
If $oInput.name = 'csrf.sign' Then
$scsrfsign = $oInput.value
ElseIf $oInput.name = 'csrf.ts' Then
$scsrfts = $oInput.value
EndIf
ConsoleWrite($oInput.name & ' - '& $oInput.value & @CRLF);
Next
$oHtmlFile.Write('')
$oRequest.Open('POST', $sURL2, 0)
$oRequest.SetRequestHeader('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8')
$oRequest.SetRequestHeader('Accept-Encoding','gzip,deflate,sdch')
$oRequest.SetRequestHeader('Accept-Language','ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4')
$oRequest.SetRequestHeader('Connection','keep-alive')
$oRequest.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oRequest.SetRequestHeader('Cookie', $sCOOKIES)
$oRequest.SetRequestHeader('Cache-Control','max-age=0')
$oRequest.SetRequestHeader('Referer','https://login.mts.ru/amserver/UI/Login?gx_charset=UTF-8&service=moipodpiski&goto=http%3A%2F%2Fmoipodpiski.mts.ru%2Fsmssubscriptionsstart.aspx&auth-status=0')
$oRequest.SetRequestHeader('Host', 'login.mts.ru')
$oRequest.SetRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36')
$oRequest.SetRequestHeader('Origin','https//login.mts.ru')
$sSendText = 'IDToken1='& $sLoginMTS &'&IDToken2='& $sPassMTS &'&IDButton=' & $sIDButton & '&goto=' & $sgoto & '&encoded=false&loginURL=' & $sloginURL & '&csrf.sign=' & $scsrfsign &'&csrf.ts=' & $scsrfts
$oRequest.SetRequestHeader('Content-Length',StringLen($sSendText))
ConsoleWrite(StringLen($sSendText) & @CRLF)
ConsoleWrite($sSendText & @CRLF);
$oRequest.Send($sSendText) ; что тебе еще надо скотина?!!!
$sData = $oRequest.responsetext
MsgBox(0,"Status",$oRequest.statustext)
ConsoleWrite($sData)
$oRequest.SetRequestHeader('Content-Type', 'text/html')
$oRequest.Open('GET', 'http://moipodpiski.mts.ru/smssubscriptionsstart.aspx', 0)
$oRequest.Send()
$sData = $oRequest.responsetext
MsgBox(0,"Status",$oRequest.statustext)
ConsoleWrite($sData)
$oErrorHandler = 0 ;выключаем обработчик ошибок
EndFunc