Sejarah satu BUKAN kerentanan

Beberapa waktu lalu, saya diberi kesempatan untuk bereksperimen dengan pengaturan satu router biasa. Faktanya adalah bahwa yang pertama bulan April mengharuskan saya untuk bermain kawan-kawan saya dari universitas. Universitas memiliki jaringan Wi-Fi. Saya memutuskan untuk meningkatkan jaringan palsu di router saya (menetapkan nama, kata sandi dan mengatur alamat MAC dari salah satu jalur akses yang sah), mulai DNS saya sendiri, server web pada laptop. Setiap orang yang secara tidak sengaja terhubung ke jaringan saya dan mencoba mengakses situs apa pun harus diarahkan ke halaman saya dengan gambar April Fools. Tapi ceritanya bukan tentang itu. Ketika saya mencari-cari di pengaturan router, saya menemukan bug yang menarik, saya akan memberitahukannya hari ini.

gambar

Pada tahap pengaturan, router terhubung ke Internet. Tetapi karena beberapa alasan, perangkat yang terhubung ke Wi-Fi tidak menerima Internet. Saya harus mengerti. Ada tab di panel router dengan kemampuan untuk menggunakan utilitas ping, sehingga telnet tidak dapat dihidupkan (saya harap semua pembaca memahami bahaya telnet terbuka ke luar?). Bentuknya terlihat seperti ini:



Fitur ini diimplementasikan sebagai berikut. Program router menerima dari pengguna string yang berisi alamat, kemudian mengganti perintah ping ke dalam string panggilan:

ping -c < > <> 

Seberapa baik router memeriksa string yang berisi alamat? Pertanyaan inilah yang muncul di benak saya. Kemudian saya mengganti perintah ampersand dan ls . Saya mendapatkan ini:



Bagi yang ada di dalam tangki


Pada sistem UNIX, kita bisa memaksa bash untuk mengeksekusi sebuah perintah di latar belakang, menggantikan sebuah ampersand setelahnya. Pada saat yang sama, kita dapat mengganti perintah setelah ampersand, dan itu akan dieksekusi bersamaan dengan yang pertama. Apa yang saya gunakan dalam hal ini. Mengganti "8.8.8.8 & ls", saya mendapat "ping -c 3 8.8.8.8 & ls". Router mengeksekusi perintah ping dan ls secara bersamaan. Kemudian dibawa hasilnya.

Jika bug ini diizinkan di tempat lain, itu akan menjadi ancaman yang sangat serius. Bagaimanapun, kerentanan seperti itu akan membantu penyerang memaksa router untuk mengeksekusi perintah apa pun, atau bahkan mendapatkan kontrol penuh atas perangkat. Kerentanan tersebut diklasifikasikan sebagai CWE-78 (Injeksi Perintah OS) .

Saya tidak duduk diam, dan saya cepat-cepat menulis kepada produsen tentang bug yang ditemukan. Saya menjelaskan secara rinci model router, versi firmware dan skrip untuk memainkan bug. Saya menerima jawaban yang menarik:

gambar
Terjemahan (kata demi kata)

Bisakah Anda memeriksa versi perangkat keras pada label bawah produk?
Kami tidak memiliki Rev. Px. Apakah Anda tahu sumber atau tempat pembelian perangkat ini?
Ternyata, mereka tidak memperhitungkan apa yang saya tulis dari Rusia. Model router ini hanya didistribusikan di negara kita. Korespondensi berakhir dengan firmware baru dikirim kepada saya, yang menghilangkan semua kekurangan dari yang sebelumnya dan menambahkan banyak fitur, tetapi karena beberapa alasan itu tidak ada dalam domain publik.

Source: https://habr.com/ru/post/id449376/


All Articles