Hook

Hook network: nilai URL terhadap SSRF

Nilai satu atau beberapa tujuan request terhadap SSRF, langsung dari command line.

Hook network memutuskan apakah tujuan request dari sisi server aman dari SSRF (request yang bisa diarahkan ke layanan internal, metadata cloud, atau host privat). Hook ini adalah engine deterministik di balik spesialisasi network, dan Anda bisa menjalankannya sendiri.

Menjalankan​

Berikan setiap tujuan dengan --url. Hook ini mencetak satu kata per tujuan, yang dijelaskan di tabel di bawah.

npx lagune read network --url 'http://example.com/'
# => safe

npx lagune read network --url 'http://0x7f000001/'
# => private-target

Hook ini meresolusi host dengan cara yang sama seperti jaringan, sehingga bentuk terenkode dari alamat internal tidak lolos: heksadesimal, oktal, desimal tanpa titik, bentuk singkat, IPv6, dan IPv4 yang dipetakan ke IPv6 semuanya terbaca private-target. Dan jika validator yang ceroboh dan fetcher sebenarnya akan membaca host yang berbeda, putusannya adalah parser-divergent.

Cara membaca putusan​

PutusanArti
safeTujuan terhubung ke host publik, dan validator yang ceroboh akan membaca host yang sama.
private-targetHost diresolusi ke alamat privat, loopback, link-local, unspecified, atau metadata cloud.
parser-divergentValidator teks yang ceroboh akan membaca host nyata yang berbeda dari host yang dihubungi fetcher.
invalid urlString tidak bisa di-parse sebagai URL, jadi tidak ada yang bisa diambil.

Hanya safe yang berarti diizinkan. Perlakukan private-target, parser-divergent, dan invalid url sebagai blokir.

Opsi CLI​

OpsiNilaiDeskripsi
--urlURL atau hostMemeriksa satu tujuan. Ulangi untuk memeriksa beberapa, satu putusan per baris.

Minimal satu --url wajib diberikan. Tujuan tidak pernah diberikan sebagai argumen posisional polos, jadi tidak bisa dikira sebuah flag.

Kenapa nilai flag

Setiap tujuan diberikan sebagai nilai flag, tidak pernah disisipkan ke dalam perintah. Nilai yang berisi tanda kutip atau backtick tetap tidak berbahaya dan tidak bisa melakukan injeksi ke shell. Selalu apit nilainya dengan tanda kutip tunggal agar shell Anda tidak mengekspansinya lebih dulu.

Yang tidak dicakup

Hook ini murni dan tidak pernah meresolusi DNS, jadi dua celah saat runtime berada di luar cakupan: DNS rebinding (nama yang diresolusi ke alamat publik saat diperiksa, tetapi ke alamat internal saat diambil) dan rantai redirect (lompatan pertama yang lolos, lalu dialihkan ke dalam). Tutup celah itu dengan meresolusi nama sekali saja lalu terhubung ke alamat yang sudah divalidasi, serta dengan menolak redirect. Hook ini langsung menetapkan nama loopback yang dicadangkan (localhost dan keluarga .localhost) sebagai internal tanpa lookup, tetapi nama DNS lainnya terbaca safe, karena memastikan nama itu diresolusi ke dalam memerlukan resolusi: daftar izin yang menjaga nama tersebut, dan daftar izin itulah yang divalidasi checker ini.

tip

Ini adalah pengecekan yang sama dengan yang dijalankan spesialisasi network untuk membuktikan bahwa filter tujuan tetap efektif.

Pertanyaan yang sering diajukan

Jalankan hook network. Hook ini menilai tujuan request dan mengembalikan safe, private-target, parser-divergent, atau invalid url. Hanya safe yang berarti diizinkan.

URL yang dibaca secara berbeda oleh parser yang berbeda, yang merupakan cara klasik untuk menembus perlindungan SSRF. Hook network menandainya alih-alih mengizinkannya.