Gambaran Keseluruhan 0x00
Baru-baru ini, saya mengalami fenomena aneh apabila menggunakan sqlmap untuk ujian suntikan Versi sqlmap yang lebih tinggi tidak dapat mengesan suntikan, tetapi versi yang lebih rendah boleh mengesan suntikan dan boleh Data yang bocor bukan penggera palsu Selepas ujian perbandingan dan menyemak kod sumber sqlmap, dua perangkap kecil ditemui.
0x01 Pengeluaran semula senario
Format titik suntikan: json
..."whereparams":[{"name":"keyWord","value": "test"}]}
Parameter boleh suntikan: nilai
arahan sqlmap:
python sqlmap.py -r sqlpk.txt –flush-session -vv
sqlmap v1.2.11 tidak boleh disuntik
sqlmap v1.2 berjaya disuntik
Begitu juga, v1.2.10 tidak boleh disuntik. v1.1.12 boleh disuntik ke dalam
Selepas analisis, dua perangkap adalah seperti berikut:
(1) The boundaries.xml of v1.2.11 (/v1.2.10/v1.2.9/master ) tidak lagi menyasarkan pertanyaan kabur (% ), manakala v1.2 (/v1.1.12/1.1.4/1.2.2) mempunyai.
(2) v1.2.11 (/v1.2.10/1.2.9/master) mesti secara manual menetapkan parameter json tertentu kepada * untuk menyuntik parameter ini (walaupun jika y-inject di dalam dipilih), jika tidak, muatan akan terus Mengikuti json menjadikannya mustahil untuk menyuntik, tetapi v1.2 (/v1.1.12) boleh secara lalai tekan Enter (y) untuk menyuntik parameter tertentu json.
Ujian Terperinci 0x02
Perangkap (1):
Mula-mula faham komposisi muatan sqlmap:
//Sumber imej https://www.freebuf.com/colum...
Lihat muatan ujian v1.2:
Muatan terpakai: %' dan 5731=5731 dan '%'='
Ini adalah suntikan kotak carian yang sangat biasa
Lihat boundaries.xml V1.2:
Sempadan.xml v1.2.11 tidak mempunyai ujian suntikan untuk pertanyaan kabur!
https://github.com/sqlmapproj...
Jadi tambahkan ujian suntikan pertanyaan kabur pada fail v1.2.11 dan tambah * secara manual pada parameter suntikan (seperti nilai), anda boleh berjaya menyuntik!
Lampirkan versi tambahan:
https://github.com/theLSA/sql...
pr mendapat balasan kerana Ada adalah begitu banyak positif palsu sehingga muatan yang berkaitan telah dialih keluar, tetapi pemulihan akan dihadkan.
https://github.com/sqlmapproj...
Perangkap (2):
Membandingkan muatan v1.2 dan v1.2.11:
Dapat dilihat bahawa v1.2.11 secara langsung menyambungkan muatan ke penghujung json.
Secara manual tambah *
%22whereparams%22%3A%5B%7B%22name%22%3A%22keyWord%22%2C%22value%22%3A%22*%22%7D%5D dalam parameter suntikan nilai %7D
boleh disuntik dengan jayanya!
0x03 Kesimpulan
Saya secara peribadi mengesyorkan menambah muatan ujian pertanyaan kabur adalah lebih baik daripada negatif palsu, dan ia adalah perkara biasa suntikan pertanyaan kabur.
Apabila menemui parameter json, cuba tambahkannya secara manual* (untuk sesetengah versi sqlmap).
Adalah disyorkan untuk menambah -vv apabila menguji dengan sqlmap.
Jangan terlalu bergantung pada alatan Cuba gunakan alatan + ujian manual untuk lebih selamat.
Atas ialah kandungan terperinci Bagaimana untuk menganalisis masalah dengan sqlmap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!