阿萨聊测试 ZAP4:如何用ZAP 做Fuzz测试?

简介: 大家好,我是阿萨。昨天解决了HTTPS的证书问题,大部分网站都可以扫描了。Web 网站扫描报告的导出,也是那么的像模像样了,开发也不需要找你。只需要看下修复建议,就大概知道如何修复了。

但是安全测试过程中有一类测试,就是Fuzz  测试。问题表现就是特别简单的异常参数攻击,就有可能导致网站出现致命问题。甚至服务器重启等异常情况产生。绝对是测试过程中投入产出比特别高的一类测试。

最典型场景就是暴力破解。把常见用户名和密码输入到参数列表里,然后用参数列表替换登录接口里的用户名和密码。返回请求结果正常的200以及结果正常的,表示破解成功了。


一 . 什么是Fuzz 测试?


Fuzz测试,也叫做“模糊测试”,是一种挖掘软件安全漏洞、检测软件健壮性的黑盒测试,它通过向软件输入非法的字段,观测被测试软件是否异常而实现。Fuzz测试的概念非常容易理解,如果我们构造非法的报文并且通过测试工具注入被测设备,那么这就是一个Fuzz测试的测试例执行,大多数测试工程师肯定都尝试过这种测试手段。今天我们就来学习如何用ZAP做这类测试。


二. ZAP 的Fuzz 功能入口


由上面的介绍我们得知:Fuzz是一种向目标提交大量无效或意外数据的技术。那么如何用ZAP做Fuzz呢?

要打开Fuzzer对话框,可以:

●右键单击ZAP选项卡中的一个请求(例如历史记录或站点),然后选择“Attack / Fuzz…”


11.jpg


●在Request选项卡中双击选中一个参数值,高亮显示一个参数的字符串,右键单击它并选择“Fuzz…”


12.jpg


●选择“Tools / Fuzz…”菜单项,然后选择你想要做Fuzz的请求


13.jpg


三. 如何利用Fuzz 做SQL注入?


接下来我们演示下如何使用Fuzz 做SQL 注入测试。

1.先找到你需要测试的API 请求的参数,无论它在URL 还是在Body里,选择中,打开Fuzz 对话框。


14.jpg


2.点击Payloads 按钮。

3.在Payloads 位置 点击Add

4.选择File Fuzzers


15.jpg


5.打开jbrofuzz, 选择SQL Injection, 选择添加,然后开始Fuzz 测试。

6.在下方Fuzzer 结果窗口分析所有200 结果的请求,表明注入成功了。


16.jpg


是不是很简单?


四. 如何使用Fuzz 测试做路径遍历?


上面介绍了SQL 注入,路径遍历的测试方法如下:

1.选择URL 中可以替换的位置或者是 Body 里的参数。选中后,打开Fuzz对话框。

2.添加Payloads


17.jpg


3.在上图对话框中选择dirbuster.

4. 添加好payload 后开始Fuzz测试即可。

5.有些同学可能说了,URL 上的参数如果要编码怎么办?ZAP为我们提供了一个强大的处理器。


18.jpg


6.在Processors 里可以选择对参数进行各种处理,比如密码加密,给参数添加前缀,URL 编码等等。

7.通过选择URL 编码,可以实现给payload参数编码。然后开始Fuzz 测试。通过分析结果中的200 请求来判断路径遍历漏洞是否存在。


19.jpg


目前内置的处理器有

●Base64解码

●Base64编码

●扩展(到指定的最小长度)

●JavaScript escape

●JavaScript Unescape

●MD5哈希

●后缀字符串

●前缀字符串

●sha - 1哈希

●sha - 256散列

●sha - 512散列

●Trim

●URL解码

●URL编码


如果你对系统比较熟悉,可以自己写一个路径的list 文件,然后导入上面的对话框中,查看是否有路径遍历。或者观察 URL 中是否有数字或者有规律的字符,可以用其他数字或者字符替换。


谢谢大家的学习。我们明天见。



相关文章
|
6月前
阿萨聊测试:如何用Postman查看HTTP消息相关内容?
阿萨聊测试:如何用Postman查看HTTP消息相关内容?
343 0
阿萨聊测试:如何用Postman查看HTTP消息相关内容?
|
6月前
|
测试技术 API 芯片
阿萨聊测试:如何在Mac 电脑上安装Postman?
阿萨聊测试:如何在Mac 电脑上安装Postman?
1338 0
阿萨聊测试:如何在Mac 电脑上安装Postman?
|
6月前
|
SQL JavaScript 前端开发
阿萨聊测试 ZAP4:如何用ZAP 做Fuzz测试?
阿萨聊测试 ZAP4:如何用ZAP 做Fuzz测试?
117 0
阿萨聊测试 ZAP4:如何用ZAP 做Fuzz测试?
|
6月前
阿萨聊测试:如何用Postman 发送请求?
阿萨聊测试:如何用Postman 发送请求?
112 0
|
6月前
|
API
阿萨聊测试: Postman 的界面功能介绍
阿萨聊测试: Postman 的界面功能介绍
|
6月前
|
安全 Go
阿萨聊测试 ZAP5: 定制扫描策略
阿萨聊测试 ZAP5: 定制扫描策略
193 0
|
10天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
42 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
63 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
242 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
252 3
快速上手|HTTP 接口功能自动化测试