如何对api进行fuzzing
2023-12-21 17:36:45 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

如何对api进行fuzzing

正文

这里postman使用5555端口,bp使用8080端口,如下所示:

下面我们来到下面的一步一步恢复密码,按照所有的步骤,直到看到下面的对话框

提示你输入一个OTP(验证码),你也可以输入错误的OTP,就像下面一样:

请注意,此API接口中的版本与之前的版本有何不同。它使用的是版本3 (v3),而我们一直在处理的其他版本使用的是版本2 (v2)。

右键单击集合(collection),并选择“Add Request”来添加来自Burp的新请求

不要忘记这是一个POST请求。还要导航到“Body”部分,选择“raw”并粘贴从请求中复制的数据。

下面是响应。这里说是无效的OTP,因为前面输入的是一个无效的OTP

多次发送请求,差不多10次了,回复如下:“您已经超过了尝试次数。”现在我有一个推论:可能v3引入了速率限制

接下来是开始Fuzzing。

模糊API仅仅意味着向接口发送不同的输入值,以发现潜在的漏洞或任何意外行为。

首先,创造一个环境。点击postman右上角的环境图标,点击“添加”。将环境命名为crAPI_Swagger

我们需要定义一个变量并创建一个键值对。这里,我的变量是“path”,键值对是v3。别忘了保存

接下来,再次单击环境图标,并确保选择了刚刚创建的环境。默认设置为“无环境”。

导航到collection,转到“测试”选项卡并粘贴以下脚本:

pm.test(“Status code is 404”, function () {

pm.response.to.have.status(404);

});

单击表示应该运行crAPI_Swagger_file的橙色按钮

注意这14个请求都失败了

我们之前运行的测试脚本检查响应状态码是否为404 (Not Found)。当我们运行脚本时,它意味着验证响应状态码是否与预期值匹配。由于集合中的所有14个请求都未能通过此测试,这意味着来自14个请求的响应没有返回状态码404。

前面提到过,“模糊化API仅仅意味着向端点发送不同的输入值,以发现潜在的漏洞或任何意外行为。 ”.

我们所做的是发送一系列请求并检查它是否会返回404。如果它返回404,那么该行为是意外的。但是在我们的集合中实际上有一个无效请求并发送请求的场景中,它确实返回404响应,这个响应是预期的,并且应用程序正在适当地响应。

也可以检查你得到的实际响应代码。在这里的例子中,得到了200 (OK成功),401(未授权),500(服务器错误)等。

接下来是替换

选择所有的框,然后替换为“{{path}}”

你会注意到所有出现的v2都被改成了{{path}}

我们没有替换v3,你可以手工去做

接下来,我们将运行一个故意失败的扫描

我将当前值更改为invalid419,这是因为我确信我没有任何像invalid419这样的请求,并且我希望我要运行的扫描失败

最后别忘了保存

点击运行collection

如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

往期回顾

xss研究笔记

SSRF研究笔记

dom-xss精选文章

2022年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247493099&idx=1&sn=6f5d9988c6fdf07af1f7e652575b6e2f&chksm=e8a5ef88dfd2669e87e68d146dae99f0182dfec8566f0d548ab606f743a9fff3a2d8baae440f&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh