代码层面安全保障【扫描】+业务层面安全保障
安全测试流程
- 安全交付评审
- 代码、依赖安全性扫描
- 安全测试用例
- 安全测试执行
需求阶段
破坏者思维审视需求,找出存在的漏洞,找出可以破坏的规则
代码层面-扫描
- 静态代码扫描 sonar
- 三方组件的扫描
数据脱敏
- 敏感数据是否做了加密,数据落库查询,比如:账户密码、商家卡密
- 敏感数据传输时是否加密,比如登陆、注册、找回密码、修改密码、支付、卡号密码等接口,抓包验证
跨目录权限-垂直权限
垂直权限攻击又叫做权限提升攻击。其原理是由于Web应用没有做权限控制,或仅仅在菜单上做了权限控制,导致恶意用户只要猜测其他管理页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
跨站脚本
xss攻击,跨站脚本导致会话被劫持、敏感信息泄露、账户被盗
- 在文本框中构造js或HTML,是否转义处理
- 在带参数的url后面进行js传值进行请求,查看是否执行了js
SQL 注入
越权-水平权限
水平权限漏洞是指Web应用程序接收到用户请求时,没有判断数据的所属人,或者在判断数据所属人时是从用户提交的参数中获取了userid,导致攻击者可以自行修改userid修改不属于自己的数据。
上传下载
文件的上传下载主要有三点
- 一个是对用户磁盘空间的大小限制,比如提供了一个上传功能,用户无限制的上传大容量文件,导致磁盘成本巨大。
- 文件类型校验
比如要上传excel的,用户上传了html文件,这个是存在一定的风险的,特别是上传后可以直接访问资源文件,这样用户可以通过上传的html做一些xss的攻击 - 资源下载的安全控制,比如用户下载自己的工资条,是这样一个链接,http://xxx.con/8888.xls,这样就可以联想修改8888这个值为其他值,查看他人的敏感数据
服务端端口
服务器端口的测试,对有些自建机房,直接通过物理机进行部署的会很有用处,比如有些不需要使用的端口对外开放了,恶意用户可能利用该端口从事一些非法操作,我们可以通过nmap进行服务器的端口扫描,非必须的端口要关闭
业务需求维度
- 密码强度策略
- 验证码:图片(不可以是HTML)、背景不为纯色、随机、只能使用一次、手机验证码短信获取
- 认证错误提示
- 锁定策略
- 限流策略
- 风控策略
- …
参考文章:https://maimai.cn/article/detail?fid=1525753675&efid=u_2xH3n3NzbWqElQpNPJZQ&use_rn=1