(持续更新中)Web功能测试下的安全测试如何进行?

本文介绍了Web安全测试的范围、测试方法和工具,帮助功能测试人员了解如何进行安全测试。内容涵盖SQL注入、XSS攻击、XXE、SSRF、目录遍历和文件上传漏洞等,通过实例和工具使用,引导读者从思维认知到实际操作,逐步成为初级安全测试工程师。
摘要由CSDN通过智能技术生成

       想到安全测试很多功能测试人员都很难入手,以为都是专业的安全测试人员去做。 比如经常碰到的任务:某某某测试下系统有哪些安全问题,而对于经历过长达五六年的 web 功能、性能、接口测试人员来说,面对该任务就一头雾水。 

       万事开头难,难在第一步如何走?没有知识积累、没有安全测试思维认知等等,将会让很多功能测试人员望而止步。

       请看完我的文章描述,我相信可以助力你成为一个初级安全测试工程师!!!

一、思维认知

Q:安全测试测试什么啊?咋测?有什么工具自动去测?

Q:安全测试策略如何编写?

Q:安全测试如何执行?

Q:安全测试报告长啥样?咋写?

Q:什么是sql 注入?什么是文件上传漏洞?什么是 XSS 漏洞?

Q:什么是 CSRF 漏洞?

Q:什么是越权访问?

Q:什么是信息泄露?

......

以上问题作为功能测试人员往往满脑子都是这些问题。

      很多初学者学习安全测试都会去搜索一些安全测试方法,比如提到很多的 kali、appscan 、ZAP 等自动化安全测试工具。 然后在不知道工具运行策略等基础上,拿来用是没有任何意义的,且通过实际操作,默认的工具策略执行出的结果是无法满足安全测试目标要求的。 学习的前提我个人建议应该是去工具化重思维理解。工具只是辅助的去验证你的思维结果正确性、结果性。

二、Web 安全测试范围

以下安全测试范围是本人实践过的,且用于过部分上市的基金公司安全测试执行过程的测试验证。

面对任何测试对象,我们需要有对应的范围,然后才讲到各个范围的技术方法。 所以我里首先枚举 Web 安全测试的范围内容。

1. Web 网站通用的安全漏洞测试范围

  • SQL 注入攻击
  • 跨站脚本攻击 XSS
  • XML 外部实体注入(XXE)
  • 跨站点伪造请求(CSRF)
  • 服务器端请求伪造(SSRF)
  • 任意文件上传漏洞
  • 任意文件下载漏洞
  • 任意目录遍历漏洞
  • 信息泄露
  • CRLF 注入
  • 命令/代码执行
  • URL 重定向
  • 第三方组件安全
  • 本地远程文件包含
  • 安全配置错误
  • 不安全的加密存储
  • 传输层保护不足
  • 已存在的脚本木马

2.基于业务层面的安全漏洞范围

  • 未授权访问
  • 验证码机制
  • 业务数据篡改
  • 业务流程乱序
  • 业务接口恶意调用
  • 用户账号枚举
  • 用户密码枚举
  • 用户弱口令
  • 会话标志固定攻击
  • 越权访问

3.基于应用框架及中间件安全漏洞

  • Webloigc反序列化命令执行

  • Bash远程解析命令执行漏洞

  • Websphere反序列化命令执行

  • Jenkins反序列命令执行

  • Jboss反序列化命令执行

  • Struts2远程命令执行

  • OPENSSL心脏滴血漏洞

  • shiro反序列化命令执行

  • Apache Log4j 2 远程代码执行漏洞

  • 5.3.10 Spring框架远程代码执行漏洞

4. 域名安全

  • AWVS扫描
  • Xray扫描

三、范围以及对应测试方式

以下使用实际安全测试方法实现安全测试范围的测试执行动作。

1. SQL 注入漏洞

定义:我这里就不把官方的话来讲给广大的读者听了。 这里我总结一句话就是:任何有参数传递且存在用加号拼接 sql 查询语句逻辑的接口,在对传参进行相关结构化数据传递后都有可能造成 SQL 注入。

1.1 方法:

  • 汇总当前系统所有相关业务接口
  • 在选择一个接口进行安全测试之前,可以用 burpsuite pro 对请求内容进行文件存储
  • 使用 sqlmap 工具执行:
python3 sqlmap.py -r "./sqlmap.txt" --risk=3 --level=3 --dbms=postgresql -v4

解释:

  • 指定数据库为系统库,是什么就写什么,比如我这边使用的是 postgresql
  • sqlmap.txt 文件就是使用 burpsuite pro 生产的请求接口文件
  • --risk 和 -- level 是 sqlmap 的参数,sqlmap 自带很多参数,可以自行百度,这里就不一一枚举了。

备注使用参数解释:

--risk

风险等级:共有3个【1-3】,最大值是3;

1、1会测试大部分的测试语句(默认值)

2、2会增加基于时间的测试语句;

3、3会增加OR语句的SQL注入测试;

--level

探测等级:一共有5个等级【1-5】,默认是1。 默认情况下SQ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值