Helo semua, penulisan yang dikongsi di bawah telah dibuat oleh pengarang semasa proses pendaftaran pengguna Tumblr, dan dia mendapati bahawa mekanisme "pengesahan mesin manusia" Tumblr (reCAPTCHA) adalah cacat dan boleh mudah dipintas. Risiko keselamatan yang disebabkan oleh pintasan ini ialah penyerang berniat jahat boleh mencipta sejumlah besar akaun sosial palsu dan menghitung nama pengguna dan e-mel untuk akaun tersebut, yang secara tidak langsung membawa kepada trafik yang tidak normal dalam aplikasi laman web Tumblr dan juga kebocoran maklumat pengguna.
Pada 16 Jun tahun lepas, HackerOne telah diadakan di London Dalam pertandingan hackathon, hadiah yang dibayar untuk menemui kelemahan melebihi lebih daripada 80,000 dolar AS. Ujian awam kerentanan sememangnya merupakan industri dengan masa depan yang menjanjikan Untuk platform ujian awam, aktiviti ujian yang teratur dengan hadiah bukan sahaja dapat memotivasikan penyelidik keselamatan untuk menemui kelemahan, tetapi juga meningkatkan kualiti kelemahan yang dilaporkan, dan juga boleh memberikan maklumat kerentanan yang terperinci kepada pengilang untuk pembaikan segera.
Keselamatan adalah subjek yang kompleks, malah syarikat besar pasti akan melakukan kesilapan. Perusahaan sering menghadapi risiko keselamatan yang tidak menentu antara sumber dalaman dan penyerang luaran, dan ujian awam yang terdedah boleh menggantikan jurang keselamatan yang sedia ada. Jika organisasi anda tidak dapat melatih atau memilih penguji keselamatan yang berkualiti tinggi dan pelbagai dari dalam, anda boleh menggunakan projek ujian awam luaran atau perkhidmatan perundingan untuk menguji produk keselamatan atau sistem berkaitan dan menemui kelemahan.
Secara peribadi, saya juga mengalami beberapa pengalaman buruk semasa proses ujian awam. Saya pernah melaporkan kerentanan berisiko tinggi kepada Myspace yang membenarkan akses kepada mana-mana akaun, tetapi semasa rundingan panjang dengan Myspace, mereka hanya acuh tak acuh dan akhirnya saya memilih untuk mendedahkan kelemahan itu (klik di sini untuk membaca). Kerentanan ini memberi kesan kepada hampir 360 juta akaun pengguna Saya berharap tekanan awam boleh digunakan untuk menggesa kelemahan itu diperbaiki.
Sebaliknya, saya pernah menemui kelemahan kod pengesahan reCaptcha oleh syarikat Tumblr Selepas melaporkannya kepada mereka melalui Twitter, mereka terus berkomunikasi dengan saya melalui mesej peribadi. pembaikan. Berikut ialah perkongsian saya tentang proses penemuan kerentanan.
Apabila saya melawati www.tumblr.com untuk pendaftaran pengguna, saya mendapati bahawa perkhidmatan kod pengesahan Google reCAPTCHA yang dibenamkan di dalamnya mempunyai kelemahan konfigurasi yang salah, iaitu Dalam permintaan kod pengesahan reCAPTCHA yang dihantar oleh pelanggan dan aplikasi, nilai parameter bernama 'g-recaptcha-response' boleh dibiarkan kosong. Kerentanan ini akan menjejaskan semua pengguna yang baru didaftarkan dan tidak memerlukan sebarang alat khas untuk mengeksploitasinya Anda hanya perlu mengklik secara manual butang yang muncul di tapak web atau memulakan pengubahsuaian melalui ejen penangkapan paket.
Secara umumnya, jika mekanisme Captcha dijalankan dan digunakan dengan betul, ia mempunyai kesan pengehadan kadar (Rate Limiting), yang boleh digunakan untuk menghalang pengguna spam daripada mencipta akaun sosial palsu dan mengurangkan volum permintaan Aplikasi tertentu. Kerentanan pintasan kod pengesahan reCAPTCHA halaman Tumblr yang saya temui boleh digunakan oleh penyerang untuk mencipta akaun palsu Selain itu, memandangkan mekanisme pendaftaran pengguna Tumblr hanya membenarkan alamat e-mel yang didaftarkan untuk diikat pada nama pengguna, kerentanan ini juga boleh digunakan untuk menyasarkan. pengguna. Serangan penghitungan brute force pada alamat e-mel dan nama pengguna yang berulang kali boleh menyebabkan kebocoran maklumat pendaftaran pengguna Tumblr.
Mari kita lihat dahulu proses penciptaan akaun biasa di halaman www.tumblr.com Mula-mula pergi ke halaman log masuk https://www.tumblr.com/login dan klik butang pendaftaran "Daftar" di penjuru kanan sebelah atas:
Kemudian ia melompat ke halaman pendaftaran akaun https://www.tumblr.com/register:
Seterusnya, klik butang mula 'Bermula', dan kemudian beberapa pilihan yang diperlukan akan muncul, termasuk nama pengguna, kata laluan dan e-mel:
Selepas melengkapkan medan yang diperlukan di atas, anda juga perlu memasukkan umur anda dan menyemak syarat perkhidmatan:
Seterusnya, "pengesahan mesin manusia" (reCAPTCHA) akan muncul ) Halaman:
Selain pilihan "reCAPTCHA" yang digunakan di sini, terdapat juga pilihan "Hampir Selesai!" Perkara yang lucu ialah, walaupun secara amnya anda perlu melengkapkan "Pengesahan Mesin Manusia" sebelum meneruskan ke langkah seterusnya, ujian saya mendapati bahawa anda tidak perlu menyemak "Saya bukan robot" dalam "Pengesahan Mesin Manusia" . Hanya klik "Hampir Selesai!" di bawah untuk melengkapkan apa yang dipanggil "pengesahan mesin manusia" di sini, dan kemudian pergi terus ke langkah seterusnya ke halaman utama Tumblr pengguna. Adakah penggunaan "pengesahan manusia-komputer" (reCAPTCHA) di sini hanya untuk pertunjukan?
Untuk analisis mendalam, kami menggunakan Burp untuk melihat "pengesahan mesin manusia" pengguna ( reCAPTCHA) langkah Mulakan permintaan dan respons khusus.
Permintaan POST apabila memulakan "pengesahan mesin manusia" adalah seperti berikut:
Pemeriksaan lebih dekat pada permintaan POST di atas mendedahkan bahawa cabaran recaptcha ialah a Nilai parameter 'g-recaptcha-response' ialah bahagian merah dalam gambar di atas. Tetapi jika kita membiarkan nilai parameter ini kosong, ia sama dengan tidak menyemaknya. Permintaan POST yang dibina dengan cara ini adalah seperti berikut:
Selepas ujian, didapati pelayan Tumblr mengembalikan respons yang sama dan sah kepada dua permintaan POST di atas:
Sudah tentu, ini bermakna pelayan Tumblr hanya terlupa untuk menyemak nilai parameter 'g-recaptcha-response', yang menghasilkan "pengesahan manusia-komputer" (reCAPTCHA) yang disebut di atas mekanisme dipintas.
Walaupun banyak aplikasi tapak web memerlukan tahap kepercayaan yang tinggi daripada pangkalan pengguna, kelemahan pintasan pengesahan seperti ini juga biasa berlaku dalam tapak web ini. Tidak, tidak lama dahulu Google baru sahaja membetulkan kelemahan yang memintas sepenuhnya reCAPTCHA.
Atas ialah kandungan terperinci Bagaimana untuk menganalisis dan memintas pengesahan reCAPTCHA semasa proses pendaftaran pengguna Tumblr. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!