See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 14835|Vastuse: 3

Analüüsi QQ kiiret sisselogimisprotokolli ja rakenda "CSRF"

[Kopeeri link]
Postitatud 21.03.2017 15:45:47 | | | |
Nagu me kõik teame, kasutas Tencent QQ kiire sisselogimise rakendamiseks Activex-i, kasutades seda tundmatus brauseris, ja esimene asi, mida teha, oli QuickLogin kontroll paigaldada.
Just siis, kui ma ei tea millal, siis kiire sisselogimine ei vaja enam juhtnuppe.
Sel ajal olin väga segaduses, millist kummalist meetodit Tencent kasutas kohalike rakendustega suhtlemiseks?

Ilma pluginateta ei tohiks veebilehed suuta otse kohalike rakendustega suhelda (välja arvatud juhul, kui protokoll on määratletud, kuid seda saab kutsuda ainult esile, mitte programmi poolt antud tulemusi).

Juhuslikult (noh, lihtsalt tüdines tegumikuhaldurit vaadates ja avastades kohaliku httpd ning avastades Apache'i töötamas) sain äkki võimaluse avastada: kui QQ avab kohaliku pordi, loob veebiserveri, st TCP serveri, mis vastab HTTP protokollile, ja siis veebileht ajax teeb päringu sellele QQ-le (praegu veebiserverina), kas saad tulemuse?

Ja see ongi tegelikult tulemus.


Web JS algatab GET-päringu http://localhost.ptlogin2.qq.com-le (pordid 4300–4308, ükshaaval edu saavutamiseks).
Ping näitab, et see on 127.0.0.1, ja kui pordi kontrollida, on see tõepoolest QQ kasutuses.

Esimene soov: /pt_get_uins?callback=ptui_getuins_CB&r=0.5919004196050326&pt_local_tk=399224727
pt_local_tk küpsist, mis iganes see ka poleks; r on juhuslik arv

Tagastatud tulemus on JSON-massiivi:
var var_sso_uin_list=[{"account":"Logitud QQ kontosse","face_index":-1,"gender":0,"nickname":"Your QQ nickname","uin":"Still your QQ konto","client_type":66818,"uin_flag":8388612}]; ptui_getuins_CB(var_sso_uin_list);

Seejärel kasuta http://ptlogin2.qq.com/getface QQ avataride saamiseks, millest siin ei räägita

Nii saab sinu QQ info veebilehel kuvada.

Kui vajutad avatari (kui valid selle sisselogimise)

Genereeritakse järgmised taotlused:
http://localhost.ptlogin2.qq.com:4300/pt_get_st?clientuin=你的QQ号&callback=ptui_getst_CB&r=0.7293395590126179&pt_local_tk=399224727
Samamoodi on r juhuslik arv, pt_local_tk pärineb küpsisest, local_token
Mida see taotlus teeb?


Noh, Set-Cookie.

Seejärel jätka taotlusega
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
Ainus U1 siin on sihtkoha aadress

See päring tagastab kõik vajalikud küpsised ja oled sisse logitud.

Pärast protokolli õppimist avastati tõsine probleem: mis juhtub, kui (musta südamega) programm teeb neid asju kasutaja nimel?

Alusta kohe!

Mul oli käepärast ainult Mac, nii et kirjutasin selle Obj-C formaadis.

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

Märkus: Minu varasema kogemuse põhjal QQ botidega (WebQQ protokolli alusel): Refereri päis on väga oluline (see peab olema .qq.com domeeninimi), kui see on vale, siis see kindlasti ebaõnnestub. Seega siin ringristmikke ei ole

Muide, olin tol ajal Obj-C maailmas uus ja mõned koodid võivad tunduda veidi tobedad, palun andke andeks.
//cookiedata是个NSDictionary




Nii on sisselogimine lõpetatud, leiad QQ ruumi liidese (siin ei postitatud) ja postitus õnnestub.

Mida see tähendab? See tähendab, et seni, kuni programm töötab lokaalselt, on võimalus QQ sisselogimine lõpetada sinu asemel ning teha mõningaid salakavalaid toiminguid platvormidel nagu QQ space, mis ei nõua sekundaarset autentimist




Eelmine:Populariseeri teadmisi: Mõista põhjalikult unit px ja em ning rem vahet CSS-is
Järgmine:XDU mõõtja reaalajas interneti kiiruse jälgimine [lähtekood]
Postitatud 21.03.2017 16:36:43 |
Ma olen see musta südamega programmeerija
 Üürileandja| Postitatud 21.03.2017 16:44:46 |
Xiaozhe postitatud 2017-03-21 16:36
Ma olen see musta südamega programmeerija

Tule, tule, kirjuta tarkvara ja lase mul jälgida
Postitatud 27.09.2017 15:47:58 |
Algne aadress: https://www.52pojie.cn/thread-591949-1-1.html
Palun ärge trükige uuesti ilma nõusolekuta ega palun ärge märkige allikat uuesti trükkimisel.
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com