陆陆续续专职安全测试已经有1年的时间了,过程中也出现了一些问题,小部分是自己的问题导致,针对出现的问题,复盘下,每次测试项目都会注意以下几点
1、测试范围测试时间评估
首先就要确认下测试范围,评估测试时间,免得到最后发现时间不够用,提前发现问题
2、一定记录越权记录(所有越权记录)
方便查看是否有验证过,且有无越权记录,要留有证据,证明你做过这个事情,且当时测试的时候是什么样的
1)纵向越权一定要覆盖,包括低权限访问高权限的,还有就是未登录可访问接口的情况
2)横向越权,需要尝试修改入参的部分参数为其他人的数据,覆盖是否有做数据权限控制
3、repeater单独验证
针对要求入参的一些接口,比如删除接口,一定需要发送repeater单独验证,替换真实数据验证
4、XSS注入
1)针对富文本的地方要多验证
2)也不能放过接口端注入XSS
3)针对get请求,替换参数为XSS验证
4)关注关联功能点,比如注入的内容在A页面,实际内容展示会在B页面,则需去B页面查看是否有XSS注入
5)注入下拉选项值
5、sql注入
1)输入框的注入
2)接口单独替换参数
3)get接口直接替换参数为sql的一些注入脚本
注入(SQL注入,python注入,系统命令注入,Ruby代码注入)
注入成功检查,添加了睡眠语句后请求接口,接口返回时间有包含了注入代码的睡眠时间则表示注入成功,接口返回为失败则表示注入不成功
|ping-c 21 127.0.0.1||x
|ping-n 21 127.0.0.1||ping-c 21 127.0.0.1
#‘| ping-n 21 12.7.0.0.1||ping-c 21 127..0.0.1
#\“|ping-n 2 127.0.0.1
+(selectfrom(select(sleep(20))a)+
'(selectfrom(select(sleep(20)))a)’
6、业务熟悉
没事多去系统点点看看,熟悉有哪些功能,避免会遗漏一些功能场景,导致出现安全问题
7、导入场景
1)考虑导入的内容含xss的内容,查看导入后呈现在页面的样子,是否会XSS注入
2)考虑导入多个附件,是否会有功能上的问题
8、逻辑错误
考虑逻辑错误也是一种安全问题
9、跨资源共享:信任任何Origin
Origin头部是CORS策略的重要组成部分,它有助于防止跨站请求伪造(CSRF)攻击和其他类型的安全风险。通过检查Origin头部,服务器可以验证请求是否来自可信的源,从而确保只有合法的请求能够访问受保护的资源。
验证方式:
请求头添加:Origin:www.baidu.com(非系统指定域名)请求接口
查看返回内容:Access-Control-Allow-Origin是否为www.baidu.com,如果是,表示接口信任任何Origin
10、跨站伪造请求
请求方式:
请求头修改Referer: https://www.baidu.com/,请求接口
查看返回内容,如正常返回接口数据,则表示跨站请求伪造(CSRF)成功,返回404则表示伪造不成功,这种验证方式有点片面,需从多方排查问题