使用Gotestwaf测试WAF检测能力

admin 2021年11月30日03:14:12安全文章评论59 views1132字阅读3分46秒阅读模式

关于Gotestwaf

Gotestwaf,全称为Go Test WAF,该工具可以使用不同类型的攻击技术和绕过技术来测试你Web应用程序防火墙的检测能力。Gotestwaf是一个基于Go开发的开源项目,它实现了一种三步请求生成过程,可以对编码器和占位符的Payload进行相乘操作。假设你定义了2个Payload、3个编码器(Base64、JSON和URLencode)和1个占位符(HTTP GET变量)。在这种情况下,Gotestwaf将在测试用例中发送2*3*1=6个请求。

Payload

你可以发送的Payload字符串,支持比如说<script>alert(111)</script>或其他更复杂的东西。当前版本的Gotestwaf还不支持类似宏这样的功能,但我们之后会添加相关支持。由于这是一个YAML字符串,因此你还可以使用二进制编码,具体请参考https://yaml.org/type/binary.html。

编码器

数据编码器工具应适用于Payload,支持Base64和JSON Unicode编码(u0027代替’)等。

占位符

占位符位于HTTP请求中,用于存放已编码的Payload。比如说URL参数、URI、POST表单参数或JSON POST主体。

工具安装

DockerHub

最新版本的Gotestwaf可以通过DockerHub库直接获取:https://hub.docker.com/r/wallarm/gotestwaf。

我们可以直接使用下列命令将项目库拉取到本地:

docker pull wallarm/gotestwaf

本地Docker构建

docker build . --force-rm -t gotestwaf

docker run -v ${PWD}/reports:/go/src/gotestwaf/reports gotestwaf --url=https://the-waf-you-wanna-test/

运行命令之后,你将会在reports文件夹下查看到waf-test-report-<date>.pdf报告文件,你也可以将其映射到容器中的/go/src/gotestwaf/reports处。

代码构建

Gotestwaf支持在目前常见的操作系统平台上运行,包括Linux、Windows和macOS,我们可以直接在安装了Go环境的系统上进行源码编译和构建:

go build -mod vendor

工具配置选项

Usage of /go/src/gotestwaf/gotestwaf:

项目地址

Gotestwaf:https://github.com/wallarm/gotestwaf


本文始发于微信公众号(盾山实验室):使用Gotestwaf测试WAF检测能力

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年11月30日03:14:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  使用Gotestwaf测试WAF检测能力 http://cn-sec.com/archives/420950.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: