RCE pada panel admin situs web web3

Dec 21 2022
Halo Peretas… Saya harap semua orang baik-baik saja. Hari ini, saya akan memberi tahu Anda tentang bagaimana saya meretas perusahaan web3 dan mendapatkan eksekusi perintah jarak jauh di panel admin mereka.

Halo Hacker…

Saya harap semua orang baik-baik saja. Hari ini, saya akan memberi tahu Anda tentang bagaimana saya meretas perusahaan web3 dan mendapatkan eksekusi perintah jarak jauh di panel admin mereka.

Ayo mulai…

Saya meretas perusahaan web3 dan menemukan perusahaan yang memiliki cakupan situs web mereka, tetapi bukan subdomain dari domain utama. Domain utama tidak memiliki fitur apa pun; itu hanya digunakan sebagai halaman web statis. Ketika kami mengklik fitur apa pun, itu akan dialihkan ke subdomain tempat semua fitur pendaftaran dan masuk tersedia.

Saya menemukan bug di subdomain yang terdiri dari sebagian besar aktivitas. Namun, karena aturan program, subdomain tidak berada dalam cakupan, sehingga bug tersebut dianggap di luar cakupan. Meskipun demikian, perusahaan membayar saya sejumlah besar uang untuk bug tersebut. Program apa pun tidak disarankan untuk menetapkan subdomain di luar cakupan saat dikaitkan dengan dan mengalihkan sebagian besar aktivitas pengguna ke subdomain tersebut.

Mereka juga menerapkan panel admin ke subdomain yang sama.

Proses Pengujian

Biarkan situs web menjadi target.com. Karena subdomain tidak termasuk dalam cakupan, saya berfokus pada situs web utama, yang tidak memiliki fitur apa pun yang dapat digunakan oleh pengguna biasa. Ketika saya mengklik tab mana pun, itu mengarahkan saya ke subdomain tempat semua fitur tersedia. Jadi saya mulai menguji pada subdomain.

Saya mulai dengan pemindaian port dan tidak menemukan sesuatu yang menarik di port terbuka. Kemudian saya mencoba mengeksploitasi berbagai bug seperti injeksi SQL, bypass otentikasi, dan SSRF. Setelah itu, saya pindah ke direktori fuzzing. Saya menggunakan berbagai metode untuk mengumpulkan daftar kata untuk fuzzing, yang saya jelaskan di blog berikut:https:///@vamshivaran110/fuzzing-with-custom-wordlists-bb7a808d943f

Setelah kabur, saya menemukan beberapa direktori yang menarik. Salah satunya, direktori “/ admin”, menarik perhatian saya, jadi saya membukanya. Mereka menggunakan GravCMS untuk login panel admin. Saya mulai mencari kerentanan yang diketahui di GravCMS dan menemukan kerentanan yang diketahui yang dapat menyebabkan RCE (CVE-2021–21425).

Plugin Admin Grav adalah antarmuka pengguna HTML yang menyediakan cara bagi pengguna untuk mengonfigurasi Grav dan membuat serta memodifikasi halaman. Namun, pengguna yang tidak diautentikasi dapat menjalankan metode tertentu dari pengontrol administrator tanpa memerlukan kredensial apa pun. Jika metode ini berhasil dieksploitasi, ini dapat mengakibatkan pembuatan file YAML arbitrer atau modifikasi file YAML yang ada di sistem. Kerentanan ini dapat menyebabkan perubahan konfigurasi, seperti perubahan informasi situs umum atau definisi pekerjaan penjadwal kustom. Karena sifat dari kerentanan ini, musuh mungkin dapat mengubah bagian halaman web, membajak akun administrator, atau menjalankan perintah sistem operasi di bawah konteks pengguna server web.

Eksploitasi:

  • Buka direktori target dihttps://target.xyz/admin.
  • Masukkan kredensial acak dan mencegat permintaan dalam burp, Dapatkan cookie dan ekstrak nilai admin-nonce dari formulir login.
  • Kirim permintaan ke pengulang dan ubah parameter sebagai berikut task=SaveDefault&data[title]=PWNED&admin-nonce=(value)
  • meneruskan permintaan dan kita bisa melihat di respon "200 OK".
PWNED

Kami juga dapat mengeksploitasi kerentanan dengan mengotomatiskan proses dengan Metasploit Framework. Cukup cari modul "GravCMS Remote Command Execution" di Metasploit dan atur parameter yang diperlukan untuk dieksploitasi.

Setelah itu, saya membuat laporan dan mengirimkannya ke perusahaan terkait dengan proof-of-concept (POC) yang tepat. Mereka sangat pintar sehingga mereka hanya menandainya sebagai "di luar jangkauan" karena itu bukan domain utama. Apa gunanya menyimpan "dalam ruang lingkup" untuk halaman web statis dan menyimpan semuanya dalam subdomain, termasuk dasbor admin?

Setelah menjelaskan kekritisan dan dampak bug, mereka menyelesaikannya dan membayar hadiah $$$.

Terima kasih sudah membaca…

Twitter: https://twitter.com/Th3Sc0rp10n

LinkedIn: https://www.linkedin.com/in/t-vamshi-2b5716165/