Kami Meretas GitHub selama Sebulan

Feb 11 2023
Pendahuluan Setelah lama hiatus, kami kembali dengan tulisan baru. Meskipun kami biasanya tidak berpartisipasi dalam program hadiah bug karena komitmen lain, kami menerima tantangan meretas GitHub selama sebulan dan bersemangat untuk membagikan temuan kami.

Perkenalan

Setelah sekian lama hiatus, kami kembali dengan tulisan baru. Meskipun kami biasanya tidak berpartisipasi dalam program hadiah bug karena komitmen lain, kami menerima tantangan meretas GitHub selama sebulan dan bersemangat untuk membagikan temuan kami. Semuanya berawal ketika Shivam Singh (Mr. Rajput Hacker) menghubungi saya pada bulan November dan mendorong saya untuk mencoba bug bounty. Kami memutuskan untuk fokus pada npmjs.com, anak perusahaan GitHub. Terlepas dari kenyataan bahwa GitHub adalah perusahaan besar dan program bug bounty bersifat publik di HackerOne, kami merasa ini layak dicoba.

Pengintaian

Dalam upaya kami menemukan kerentanan di npmjs.com, Th3Pr0xyB0y (Vansh Devgan) dan Mr Rajput Hacker (Shivam Singh) memulai dengan melakukan operasi pengintaian. Kami menggunakan produk internal kami, X (bagian dari paket CyberXplore), untuk mengumpulkan informasi sebanyak mungkin, termasuk alamat IP, port terbuka, tangkapan layar, dan titik akhir. Dengan kekuatan cloud computing, proses pengintaian menjadi cepat dan efisien.

Namun, setelah meninjau informasi yang dikumpulkan, kami menemukan bahwa ruang lingkup serangan terhadap target, npmjs.com dan npmjs.org terbatas. Produk internal kami, X , membuat proses pengintaian menjadi mudah, dan kami dengan senang hati mengumumkan bahwa versi beta pribadi akan segera tersedia untuk masyarakat umum .

Berfokus pada Logika Bisnis

Tuan Rajput Hacker dan saya memutuskan untuk fokus hanya pada bug logika bisnis di aplikasi. Sebelum kami memulai pencarian kami, kami memastikan untuk memahami aplikasi sepenuhnya. Ini melibatkan penggunaan minimal Burp Suite dan fokus pada pemahaman fungsionalitas inti dan proses aplikasi. Tujuan kami adalah menemukan kelemahan dalam logika bisnis yang berpotensi untuk dieksploitasi. Dengan membatasi perangkat kami dan berfokus pada pemahaman aplikasi, kami bertujuan untuk mengungkap kerentanan unik atau yang terlewatkan. Karena npmjs.com adalah aplikasi yang relatif kecil, pemahaman dan catatan kami membutuhkan waktu kurang dari dua jam untuk menyelesaikannya.

Kerentanan Ditemukan

Meskipun kami menyebutkan tentang 9 Kerentanan yang dilaporkan, kami akan menulis tentang 3 di antaranya di sini hari ini yang diberikan di bawah ini:

  1. Bypass Verifikasi Masuk Di npmjs.com
  2. Pengambilalihan Pra-Akun Di npmjs.com
  3. Masalah Kontrol Akses Di education.github.com

Keterangan -

Saat melalui bagian otentikasi npmjs.com dan fungsi umum seperti memperbarui alamat email dan fungsi pembaruan profil, kami menemukan perilaku aneh tentang aplikasi yang menarik perhatian kami yang merupakan format tautan verifikasi email, tautan setel ulang kata sandi & tautan terkirim untuk memperbarui alamat email.

Tautan diformat seperti https://npmjs.com/verify/{some_random_token_here} untuk semua fungsi baik itu pengaturan ulang kata sandi, tautan verifikasi email, atau tautan XYZ apa pun di situs ini untuk tujuan apa pun. Selanjutnya, kami mengamati setiap kali Anda masuk ke aplikasi, ia mengirimkan kode verifikasi ke alamat email terdaftar Anda dan Anda harus memasukkannya sebagai bagian dari fitur verifikasi masuk (semacam kode 2FA/MFA pada email) agar berhasil masuk ke akun . kami kemudian mencoba untuk mem-bypass fungsi ini dan berhasil melewatinya karena kami telah sepenuhnya menggunakan aplikasi dalam 2 jam terakhir kami mengetahui setiap fungsi sehingga kami dapat menghubungkan dan membuat bypass membaca langkah-langkah di bawah ini untuk mereproduksi untuk melihat bagaimana kami melakukannya.

Selama pemeriksaan kami terhadap proses autentikasi dan fungsi umum npmjs.com, seperti memperbarui alamat email dan profil, kami menemukan perilaku aneh dalam format tautan verifikasi email, menempelkan GitHub yang Diretas selama Sebulan: Inilah Yang Kami Temukan tautan setel ulang kata, dan tautan dikirim untuk memperbarui alamat email. Tautan ini diformat sebagai https://npmjs.com/verify/{random_token} , dan digunakan untuk semua fungsi, termasuk pengaturan ulang kata sandi, verifikasi email, dan lainnya.

Kami juga memperhatikan bahwa setiap kali pengguna masuk ke aplikasi, kode verifikasi dikirimkan ke alamat email terdaftar. Kode verifikasi ini diperlukan untuk menyelesaikan proses login, bertindak sebagai bentuk autentikasi dua faktor. Hal kedua yang kami perhatikan Saat memperbarui alamat email di npmjs, proses pembaruan akan terjadi tanpa memerlukan konfirmasi kata sandi. Email akan dikirim ke alamat email lama dan baru. Email yang dikirim ke alamat lama akan memberi tahu penerima bahwa jika perubahan tidak dilakukan oleh mereka, mereka dapat mengeklik tautan (https://npmjs.com/verify/{some_random_token_here}) untuk mengembalikan perubahan dan membuat alamat lama mereka yang sekarang. Email yang dikirim ke alamat baru akan berisi tautan untuk memverifikasi email baru dan menautkannya ke akun yang baru saja diperbarui.

Kami mengalami masalah mengejutkan saat mencoba masuk ke akun setelah memperbarui alamat email di halaman profil. Meskipun belum mengonfirmasi atau mengklik tautan apa pun di email lama atau baru, sistem menampilkan pesan yang menunjukkan bahwa kode verifikasi telah dikirim ke alamat baru yang belum diverifikasi. Tampaknya ini menunjukkan bahwa kami tidak akan dapat masuk. Namun, setelah diperiksa lebih dekat, kami menemukan email yang dikirim ke alamat lama kami, meminta kami mengembalikan perubahan untuk menghindari penguncian akun. Setelah mengklik tautan yang disediakan ( https://npmjs.com/verify/{random_token}) untuk mengembalikan email, kita diarahkan ke halaman login. Yang mengejutkan kami, ketika kami memasukkan kredensial kami, sistem tidak meminta kode verifikasi dan sebaliknya mengizinkan kami untuk masuk dan mengembalikan perubahan email.

Namun, setelah penyelidikan lebih lanjut, kami berhasil melewati fungsi ini. Pemahaman kami yang mendalam tentang aplikasi, diperoleh dari menghabiskan dua jam untuk membiasakan diri dengan fitur-fiturnya, memungkinkan kami menghubungkan berbagai fungsi dan menemukan jalan pintas. Langkah-langkah untuk mereproduksi bypass dapat ditemukan di bawah.

Klik Disini Atau Kunjungihttps://blog.cyberxplore.com/we-hacked-github-for-a-month-heres-what-we-found/Untuk Membaca Blog Lengkap Lengkap Yang Diposting Di Blog CyberXplore .

Jangan Lupa Ikuti Peneliti Keamanan Kami –

Terima kasih, Semuanya Sudah Membaca Jangan Lupa Tinggalkan Tepuk Tangan Jika Anda Menyukainya .

Ikuti kami -

Twitter → @ MrRajputHacker @ Th3Pr0xyB0y

Instagram → @ MrRajputHacker @ vanshdevgan

Linkedin → MrRajputHacker @ th3pr0xyb0y

Sedang → @ mrrajputhacker @ th3pr0xyb0y