Filter Bypass Cross Site Scripting (XSS) Menggunakan Hex Encoding


Cross-site scripting (XSS) adalah kerentanan umum dalam analisis kerentanan Web. Dalam banyak kasus, mudah untuk masuk tanpa pemfilteran dengan mudah, tetapi sebagian besar layanan yang dianalisis memiliki pemfilteran yang kuat. Namun, ada aturan dalam mengatasi ini juga, dan peretas dapat dengan mudah melewati aturan ini. Dalam hal ini, kita ingin melihat pemfilteran penyaringan melalui HEX Encoding

1. Apa itu Hex Encoding?

Hex Encoding dalah cara untuk merepresentasikan data hex di web melalui string “& # x”. Ini disebut hex encoding.

2. Masukkan filter XSS sederhana dan sintak XSS 

Prinsipnya sederhananya. Jika Anda menambahkan 41 & # x ke nilai hex yang mewakili A, itu berarti & # x41, yaitu, teks A.
Sebagian besar filter XSS menggunakan karakter khusus & lt; & Gt; Dll. Saya ingin mengonversi ke peretas agar dapat menggunakan skrip,

bagian ini diverifikasi jika pemfilteran untuk input pengguna, penyerang dapat melewati aturan pemfilteran dengan menggunakan data yang di password kan.

Misalnya, kita akan mempertimbangkan fungsi pemfilteran XSS berikut


<?
function XSSFilter($inputString)
{
$output = str_replace(“<“,”&lt;”,$inputString);
$output = str_replace(“>”,”&gt;”,$output);
return $output;
}
?>

<?
$sqlIn = $_GET[‘title’];
$sqlIn = XSSFilter($sqlIn);
db_connect($sqlIn);

?>

contih Ini adalah kode yang telah ditulis, sehingga mungkin tidak benar-benar berjalan. Namun, dalam contoh di atas, jika Anda mengirim nilai ke parameter judul dengan dapatkan dan tulis ke pos melalui db_connect <> Difilter untuk string. Karena sebagian besar papan buletin memerlukan penandaan, kami biasanya menerapkan filter XSS di bagian sisipan.
/? title = <script> alert (1) </script> Ketika Anda meletakkan sintaks serangan dalam bentuk berikut ini, posting akan disaring dan muncul seperti di bawah ini.
& lt; skrip & gt; alert (45) & lt; / script & gt;

3. XSS melalui HEX Encoding

Mari kita coba memasukkan sintaks XSS dengan cara yang sedikit berbeda dari yang di atas. Dengan cara yang sama, kita menempatkan sintaks pada parameter judul, tetapi kita menempatkannya dalam hex.


/? title =% 26% 23x003C; script% 26% 23x003E; alert (1)% 26% 23x003C; / script% 26% 23x003E;

Fungsi XSSFilter yang dibuat di atas tidak difilter oleh fungsi str_replace. Jika penyandian hex dilepaskan ketika DB disimpan dan diekspos pada papan buletin, sintaksis skrip lengkap berikut muncul.


alert <script> (1) </script>

4. Bypassing XSS


Sebenarnya, saya tidak berpikir ada sesuatu tentang metode bypass XSS. Secara default, pengkodean dikenal secara luas, tetapi sebenarnya saya pikir hal terpenting yang tampaknya adalah fungsi dari aturan filter XSS. BBT (BlackBoxTest) dalam aturan yang disimpulkan melalui pengujian berulang-ulang dan spekulasi, dll. Karena Anda tidak dapat melihat kode, Anda dapat berhasil melewati aturan XSS serangan hayeoyaman menemukan celah di dalamnya.


Eat, Sleep, Coding. Repeat !

Post a Comment