Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 14835|Yanıt: 3

QQ Hızlı Giriş Protokolünü Analiz Edin ve "CSRF" Uygulayın

[Bağlantıyı kopyala]
Yayınlandı 21.03.2017 15:45:47 | | | |
Bildiğimiz gibi, Tencent QQ hızlı giriş uygulamak için Activex kullandı, bunu tanımadığı bir tarayıcıda kullandı ve ilk yapılacak şey QuickLogin kontrolünü yüklemek oldu.
Tam ne zaman olacağını bilmediğim anda, hızlı giriş birden kontrollere ihtiyaç duymuyor.
O zamanlar çok şaşırdım, Tencent yerel uygulamalarla etkileşimde hangi tuhaf yöntemi kullanmıştı?

Eklentiler olmadan, web sayfaları yerel uygulamalarla doğrudan etkileşime giremez (bir protokol tanımlanmamışsa, ancak sadece çağrılabiliyor ve programın sağladığı sonuçlar çağrılamaz).

Tesadüfen (sadece görev yöneticisine bakıp yerel httpd'yi bulup Apache'nin çalıştığını görmek sıkıldım), aniden bir ihtimal fark ettim: QQ yerel bir port açarsa, HTTP protokolüne uyumlu bir web sunucusu yaparsa, yani bir TCP sunucusu yaparsa ve ardından web sayfası ajax o QQ'ya (şu anda web sunucusu olarak) bir talep yaparsa, sonucu alabilir misiniz?

Ve asıl sonuç da bu.


Web JS, http://localhost.ptlogin2.qq.com'ye (4300-4308 portları, başarıya doğru teker teker portlar) GET isteği başlatır.
Ping yaptığınızda 127.0.0.1 olduğunu göreceksiniz ve portu kontrol ettiğinizde gerçekten QQ kullanılıyor.

İlk istek: /pt_get_uins?callback=ptui_getuins_CB&r=0.5919004196050326&pt_local_tk=399224727
pt_local_tk kurabiyelerden geliyor, neyse; r rastgele bir sayıdır

Sonuç, bir JSON dizisi olur:
var var_sso_uin_list=[{"account":"QQ hesabına giriş yaptı","face_index":-1,"gender":0,"nickname":"QQ lakabınız","uin":"Hala QQ hesabınız","client_type":66818,"uin_flag":8388612}]; ptui_getuins_CB(var_sso_uin_list);

Sonra http://ptlogin2.qq.com/getface kullanarak QQ avatarları elde edin, bu burada tartışılmayacak

Bu şekilde QQ bilgileriniz web sayfasında görüntülenebilir.

Avatarınıza bastığınızda (bu girişi seçtiğinizde)

Aşağıdaki talepler oluşturulur:
http://localhost.ptlogin2.qq.com:4300/pt_get_st?clientuin=你的QQ号&callback=ptui_getst_CB&r=0.7293395590126179&pt_local_tk=399224727
Benzer şekilde, r rastgele bir sayıdır pt_local_tk bir kurabiyeden gelir, local_token
Bu talep ne işe yarıyor?


Şey, Set-Cookie.

Sonra talebe devam edin
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
Buradaki tek U1 varış adresi

Bu talep ihtiyacınız olan tüm çerezleri geri gönderecek ve giriş yapmış olacaksınız.

Protokolü öğrendikten sonra ciddi bir sorun ortaya çıktı: Eğer (karanlık) bir program kullanıcı adına bunları yaparsa ne olur?

Hemen başla!

Elimde sadece bir Mac vardı, bu yüzden Obj-C ile yazdım.

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

Not: Önceki QQ botları deneyimim nedeniyle (WebQQ protokolüne dayanarak): Referer başlığı çok önemli (.qq.com alan adı olmalı), yanlış olduğunda kesinlikle başarısız olur. Yani burada kavşak yok

Bu arada, o zamanlar Obj-C'ye yeniydim ve bazı kodlar biraz saçma gelebilir, lütfen affedin.
//cookiedata是个NSDictionary




Bu şekilde, giriş tamamlanır ve burada paylaşılmayan bir QQ alan arayüzü bulursunuz, gönderi başarılı olur.

Bu ne anlama geliyor? Bu, yerel olarak çalışan bir program olduğu sürece, QQ girişini sizin yerine tamamlama şansınız olduğu ve ikincil kimlik doğrulama gerektirmeyen QQ alanı gibi platformlarda bazı gizli işlemler yapma şansı olduğu anlamına gelir




Önceki:Bilgiyi yaygınlaştırın: CSS'de unit px ile em ve rem arasındaki farkı iyice anlayın
Önümüzdeki:XDU Meter Gerçek Zamanlı İnternet Hız İzleme [Kaynak Kodu]
Yayınlandı 21.03.2017 16:36:43 |
Ben bu kara kalpli programcı olacağım
 Ev sahibi| Yayınlandı 21.03.2017 16:44:46 |
Xiaozhe 2017-3-21 16:36 tarihinde paylaşıldı
Ben bu kara kalpli programcı olacağım

Hadi, hadi, bir yazılım yaz ve ben gözlemleyeyim
Yayınlandı 27.09.2017 15:47:58 |
Orijinal adres: https://www.52pojie.cn/thread-591949-1-1.html
Lütfen izinsiz yeniden basma yapmayın ve yeniden basım sırasında kaynağı belirtmeyin.
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com