在未接触过安全测试前,总感觉安全测试是很神秘的东西,对测试人员也应该是要求相当高,不是我等一般小人物能够触及到的。
由于对安全测试的不了解,而且公司有专人负责安全测试,所以在以前做的项目中都不会太去考虑什么XSS,CSRF的漏洞,能考虑到的也就是session失效。
第一次真正接触到安全测试是测试用例PK时,刚好和花花一组,提出了安全测试,由我负责写用例,对XSS,CRSF完全没有概念,无从下手,经我们的安全大师花花指点,终于明白了什么是XSS和CSRF,也对安全测试他们也有了一个初步了解, XSS测试:在输入框的页面测试一些关键HTML代码看会不会报错。CSRF测试:同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功。
第二次接触安全测试是分到两个店铺XSS和CSRF安全漏洞的日常,刚拿到日常时发现shopmanager套用不上,他全是展示页面,没有输入框,也没有什么要操作提交的,怎么测XSS和CSRF呀,又P颠P颠的跑去请教花花,给我了很多资料,包括以前没有参加分享的安全测试PPT,还有测试工具 Paros和淘宝内部的安全测试工具。
用工具测试是很好,但是有时也会误报,像扫描结果中发现每次扫描基本上都会报XSS和CSRF错误,所以需要对结果进行分析。
XSS误报:
在报错动作下的Report下面会显示错误,如果错误的描述显示以为信息,则是些错误为误报,可以不用理会:The error messages may disclose sensitive information. This information can be used to launch further attacks.
对有输入框和报CSRF错误的页面,也可以进行手工排查。
有输入框的页面测试可以输入以下符号或标签判断是否有XSS漏洞:
输入大于小于符号
输入双引号 ”
输入单引号 ‘
输入HTML标签
$!productName
var from = ‘$!rundata.Parameters.getString(’from’)';
var from = ”;hackerFunction(document.cookie);”;
以下方法可判断是否有CSRF漏洞:
对权限页面,同一个浏览器同时打开两个相同URL页面,其中一个页面cookie失效,另一个页面是否可操作成功。
排查CSRF错误:
当页面没有CHECKCODE时,查看页面源代码,查是是否有token。
如果页面完全是展示页面,是不会有token的。