Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 14835|Jawab: 3

Analisis Protokol Login Cepat QQ dan Terapkan "CSRF"

[Salin tautan]
Diposting pada 21/03/2017 15.45.47 | | | |
Seperti yang kita semua tahu, Tencent menggunakan Activex untuk mengimplementasikan login cepat QQ, menggunakannya di browser yang tidak dikenal, dan hal pertama yang harus dilakukan adalah menginstal kontrol QuickLogin.
Tepat ketika saya tidak tahu kapan, login cepat tiba-tiba tidak memerlukan kontrol.
Saat itu, saya sangat bingung, metode aneh apa yang digunakan Tencent untuk berinteraksi dengan aplikasi lokal?

Tanpa plugin, halaman web seharusnya tidak dapat berinteraksi langsung dengan aplikasi lokal (kecuali protokol ditentukan, tetapi hanya dapat dipanggil dan bukan hasil yang disediakan oleh program).

Secara kebetulan (yah, hanya bosan melihat pengelola tugas dan menemukan httpd asli, dan menemukan Apache berjalan), saya tiba-tiba menyadari kemungkinan: jika QQ membuka port lokal, membuat server web, yaitu server TCP yang sesuai dengan protokol HTTP, dan kemudian halaman web ajax membuat permintaan ke QQ itu (saat ini sebagai server web), dapatkah Anda mendapatkan hasilnya?

Dan itulah hasilnya.


Web JS memulai permintaan GET ke http://localhost.ptlogin2.qq.com (port dari 4300-4308, satu per satu hingga berhasil).
Ping itu akan menemukan bahwa itu adalah 127.0.0.1, dan ketika Anda memeriksa port, itu memang QQ yang digunakan.

Permintaan pertama: /pt_get_uins?callback=ptui_getuins_CB&r=0.5919004196050326&pt_local_tk=399224727
pt_local_tk dari kue, apa pun itu; r adalah angka acak

Hasil yang ditampilkan adalah array JSON:
var var_sso_uin_list=[{"account":"Masuk ke akun QQ","face_index":-1,"gender":0,"nickname":"Nama panggilan QQ Anda","uin":"Masih akun QQ Anda","client_type":66818,"uin_flag":8388612}]; ptui_getuins_CB(var_sso_uin_list);

Kemudian gunakan http://ptlogin2.qq.com/getface untuk mendapatkan avatar QQ, yang tidak akan dibahas di sini

Dengan cara ini informasi QQ Anda dapat ditampilkan di halaman web.

Saat Anda menekan avatar Anda (saat Anda memilih login ini)

Permintaan berikut dibuat:
http://localhost.ptlogin2.qq.com:4300/pt_get_st?clientuin=你的QQ号&callback=ptui_getst_CB&r=0.7293395590126179&pt_local_tk=399224727
Demikian pula, r adalah bilangan acak, pt_local_tk berasal dari cookie, local_token
Apa yang dilakukan permintaan ini?


Nah, Set-Cookie.

Kemudian lanjutkan dengan permintaan
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
Satu-satunya U1 di sini adalah alamat tujuan

Permintaan ini akan mengembalikan semua cookie yang Anda butuhkan, dan Anda masuk.

Jadi setelah mempelajari protokol, masalah serius ditemukan: apa yang terjadi jika program (berhati hitam) melakukan hal-hal ini atas nama pengguna?

Mulailah sekarang!

Saya hanya memiliki Mac, jadi saya menulisnya di Obj-C.

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

Catatan: Karena pengalaman saya sebelumnya dalam bot QQ (berdasarkan protokol WebQQ): header Referer sangat penting (harus nama domain .qq.com), begitu salah, itu pasti akan gagal. Jadi tidak ada bundaran di sini

Ngomong-ngomong, saya baru mengenal Obj-C saat itu, dan beberapa kodenya mungkin tampak agak konyol, maafkan saya.
//cookiedata是个NSDictionary




Dengan cara ini, login selesai, dan Anda dapat menemukan antarmuka ruang QQ (tidak diposting di sini), dan postingan berhasil.

Apa artinya ini? Ini berarti bahwa selama ini adalah program yang berjalan secara lokal, ada kesempatan untuk menyelesaikan login QQ alih-alih Anda, dan melakukan beberapa operasi licik pada platform seperti ruang QQ yang tidak memerlukan otentikasi sekunder




Mantan:Mempopulerkan pengetahuan: Pahami secara menyeluruh perbedaan antara unit px dan em dan rem di CSS
Depan:Pemantauan Kecepatan Internet Real-time XDU Meter [Kode Sumber]
Diposting pada 21/03/2017 16.36.43 |
Saya akan menjadi programmer berhati hitam ini
 Tuan tanah| Diposting pada 21/03/2017 16.44.46 |
Xiaozhe Dipaparkan pada 2017-3-21 16:36
Saya akan menjadi programmer berhati hitam ini

Ayo, ayo, tulis perangkat lunak dan biarkan saya mengamati
Diposting pada 27/09/2017 15.47.58 |
Alamat asli: https://www.52pojie.cn/thread-591949-1-1.html
Tolong jangan mencetak ulang tanpa persetujuan, dan harap jangan menunjukkan sumbernya saat mencetak ulang.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com