Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 14835|Odpověď: 3

Analyzujte QQ Quick Login Protocol a implementujte "CSRF"

[Kopírovat odkaz]
Zveřejněno 21.03.2017 15:45:47 | | | |
Jak všichni víme, Tencent použil ActiveX k implementaci QQ rychlého přihlášení, a to v neznámém prohlížeči, a první věc, kterou jsme udělali, bylo nainstalovat ovládací ovládání QuickLogin.
Právě když nevím kdy, rychlé přihlášení najednou nepotřebuje ovládání.
Tehdy jsem byl velmi zmatený, jakou zvláštní metodu Tencent používá k interakci s lokálními aplikacemi?

Bez pluginů by webové stránky neměly být schopny přímo komunikovat s lokálními aplikacemi (pokud není definován protokol, ale lze jej pouze vyvolat, nikoli výsledky poskytované programem).

Náhodou (no, jen jsem se nudil při prohlížení správce úloh, objevování nativního httpd a nacházení běžícího Apache), jsem si najednou uvědomil možnost: pokud QQ otevře lokální port, vytvoří webový server, tedy TCP server, který splňuje HTTP protokol, a pak webová stránka ajax pošle požadavek na ten QQ (v tuto chvíli jako webový server), dostaneš výsledek?

A to je opravdu výsledek.


Web JS zahajuje GET požadavek na http://localhost.ptlogin2.qq.com (porty od 4300 do 4308, jeden po druhém až k úspěchu).
Když ho označíte, zjistí, že je to 127.0.0.1, a když zkontrolujete port, je to skutečně QQ v používání.

První požadavek: /pt_get_uins?callback=ptui_getuins_CB&r=0.5919004196050326&pt_local_tk=399224727
pt_local_tk od sušenek, ať už to je cokoli; r je náhodné číslo

Výsledkem je JSON pole:
var var_sso_uin_list=[{"account":"Přihlášen na QQ účtu","face_index":-1,"gender":0,"přezdívka":"Your QQ přezdívka","uin":"Stále váš QQ účet","client_type":66818,"uin_flag":8388612}]; ptui_getuins_CB(var_sso_uin_list);

Pak použijte http://ptlogin2.qq.com/getface k získání QQ avatarů, o kterých zde nebudeme mluvit

Tímto způsobem lze vaše QQ informace zobrazit na webové stránce.

Když stisknete svého avatara (když vyberete toto přihlášení)

Generují se následující požadavky:
http://localhost.ptlogin2.qq.com:4300/pt_get_st?clientuin=你的QQ号&callback=ptui_getst_CB&r=0.7293395590126179&pt_local_tk=399224727
Podobně je r náhodné číslo, pt_local_tk pochází ze sušenky, local_token
Co tato žádost dělá?


No, Set-Cookie.

Pak pokračujte v žádosti
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
Jediné U1 zde je cílová adresa

Tento požadavek vám vrátí všechny potřebné cookies a jste přihlášeni.

Po naučení protokolu se objevil vážný problém: co se stane, když program (nesmyslný) udělá tyto věci jménem uživatele?

Začněte hned!

Měl jsem po ruce jen Mac, tak jsem to napsal v Obj-C.

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

Poznámka: Kvůli mým předchozím zkušenostem s QQ boty (založenými na protokolu WebQQ): hlavička Referer je velmi důležitá (musí to být doména .qq.com), jakmile je špatná, určitě selže. Takže tady nejsou žádné kruhové objezdy

Mimochodem, tehdy jsem byl v Obj-C nováček a některé části kódu mohou působit trochu hloupě, prosím, odpusťte mi.
//cookiedata是个NSDictionary




Tímto způsobem je přihlášení dokončeno, najdete rozhraní QQ space (zde není zveřejněno) a příspěvek je úspěšný.

Co to znamená? To znamená, že pokud jde o program běžící lokálně, je šance dokončit přihlášení do QQ místo vás a provádět nějaké nenápadné operace na platformách jako QQ space, které nevyžadují sekundární autentizaci




Předchozí:Popularizujte znalosti: Důkladně pochopte rozdíl mezi jednotkou px a em a REM v CSS
Další:XDU Meter – monitorování rychlosti internetu v reálném čase [zdrojový kód]
Zveřejněno 21.03.2017 16:36:43 |
Budu tenhle černosrdcový programátor
 Pronajímatel| Zveřejněno 21.03.2017 16:44:46 |
Xiaozhe Zveřejněno 21. 3. 2017 v 16:36
Budu tenhle černosrdcový programátor

No tak, no tak, napište software a nechte mě pozorovat
Zveřejněno 27.09.2017 15:47:58 |
Původní adresa: https://www.52pojie.cn/thread-591949-1-1.html
Prosím, netiskejte bez souhlasu a neuvádějte zdroj při přetisku.
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com