Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 14835|Válasz: 3

Elemezd a QQ gyors bejelentkezési protokollt és valósítsd meg a "CSRF"

[Linket másol]
Közzétéve 2017. 03. 21. 15:45:47 | | | |
Ahogy mindannyian tudjuk, a Tencent az Activex-et használta a QQ gyors bejelentkezés megvalósításához, egy ismeretlen böngészőn, és az első lépés a QuickLogin vezérlés telepítése volt.
Pont amikor nem tudom, mikor, a gyors bejelentkezésnek hirtelen nincs szüksége a vezérlésre.
Akkoriban nagyon tanácstalan voltam, milyen furcsa módszert használt a Tencent a helyi alkalmazásokhoz való interakcióhoz?

Pluginek nélkül a weboldalak nem tudnának közvetlenül interakcióba lépni helyi alkalmazásokkal (hacsak nem definiálnak egy protokoll, de csak előhívható, nem a program által szolgáltatott eredmények).

Véletlenül (nos, csak unatkoztam a feladatkezelő nézésével, felfedezni a natív httpd-t, és az Apache futását) hirtelen rájöttem egy lehetőségre: ha a QQ megnyit egy helyi portot, létrehoz egy webszervert, azaz egy TCP szervert, amely megfelel az HTTP protokollnak, és az ajax weboldal kérést tesz ehhez a QQ-hoz (jelenleg webszerverként), akkor meg tudod kapni az eredményt?

És ez az igazán az eredmény.


Web JS GET kérést indít http://localhost.ptlogin2.qq.com számára (4300-tól 4308-as portokhoz, egyenként sikeresen).
Ha pingel, azt fogja találni, hogy 127.0.0.1, és amikor megnézed a portot, valóban QQ van használatban.

Első kérés: /pt_get_uins?callback=ptui_getuins_CB&r=0.5919004196050326&pt_local_tk=399224727
pt_local_tk sütikből, bármi is legyen az; r egy véletlenszám

Az eredmény egy JSON tömb:
var var_sso_uin_list=[{"account":"Bejelentkezés QQ fiókba","face_index":-1,"gender":0,"nickname":"A QQ beceneved","uin":"Még mindig a QQ fiókod","client_type":66818,"uin_flag":8388612}]; ptui_getuins_CB(var_sso_uin_list);

Ezután használd http://ptlogin2.qq.com/getface a QQ avatarok megszerzésére, amiről itt nem beszélünk

Így a QQ adataid megjeleníthetők az oldalon.

Amikor megnyomod az avatárodat (amikor ezt a bejelentkezést választod)

Az alábbi kérések generálódnak:
http://localhost.ptlogin2.qq.com:4300/pt_get_st?clientuin=你的QQ号&callback=ptui_getst_CB&r=0.7293395590126179&pt_local_tk=399224727
Hasonlóképpen, r véletlenszám, pt_local_tk egy sütiből származik, local_token
Mit csinál ez a kérés?


Nos, Set-Cookie.

Ezután folytasd a kéréssel
http://ptlogin2.qq.com/jump?clientuin=你的QQ号&keyindex=19&pt_aid=549000912&daid=5&u1=http%3A%2F%2Fqzs.qzone.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&pt_local_tk=1881902769&pt_3rd_aid=0&ptopt=1&style=40
Az egyetlen U1 itt a célcím

Ez a kérés visszaadja az összes szükséges sütit, és be vagy jelentkezve.

Tehát a protokoll megtanulása után komoly problémát fedeztek fel: mi történik, ha egy (fekete szívű) program ezeket a dolgokat a felhasználó nevében csinálja?

Kezdjétek el most!

Csak egy Mac volt nálam, ezért Obj-C-ben írtam.

[self GET:@"http://localhost.ptlogin2.qq.com:4300/pt_get_uins?callback=ptui_getuins_CB&r=0.47178753013324637&pt_local_tk=-1211438011" fejléc:nil];
//这里的GET是我自己封装的一个方法,GET网页上的数据

Megjegyzés: Korábbi tapasztalataim alapján QQ botokkal (WebQQ protokoll alapján): a Referer fejléc nagyon fontos (biztosan .qq.com domain név), ha hibás, biztosan meghibás. Szóval itt nincsenek körforgalom

Egyébként akkoriban új voltam az Obj-C-ben, és néhány kód talán kissé nevetségesnek tűnhet, kérlek, bocsáss meg.
//cookiedata是个NSDictionary




Így a bejelentkezés teljes, és találhatsz egy QQ térfelületet (amit itt nem írsz), és a bejegyzés sikeres lesz.

Mit jelent ez? Ez azt jelenti, hogy amíg egy helyi program fut, lehetőség van a QQ bejelentkezést helyett, és néhány alattomos műveleteket végezni olyan platformokon, mint a QQ Space, amelyek nem igényelnek másodlagos hitelesítést




Előző:Népszerűsítsd a tudást: Alaposan értsd meg a különbséget az unit px és az em és rem között a CSS-ben
Következő:XDU mérő valós idejű internetsebesség-monitorozás [forráskód]
Közzétéve 2017. 03. 21. 16:36:43 |
Én leszek ez a feketeszívű programozó
 Háziúr| Közzétéve 2017. 03. 21. 16:44:46 |
Xiaozhe 2017-03-21 16:36-án posztolva
Én leszek ez a feketeszívű programozó

Gyerünk, gyerünk, írj egy szoftvert, és hadd figyeljem meg
Közzétéve 2017. 09. 27. 15:47:58 |
Eredeti cím: https://www.52pojie.cn/thread-591949-1-1.html
Kérjük, ne nyomtassa újra engedély nélkül, és kérlek, ne jelölje meg a forrást újranyomtatáskor.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com