struts2远程代码执行漏洞

栏目: Struts · 发布时间: 6年前

内容简介:这个星期对安全漏洞有个直观的认识。很久前就听闻Struts2爆出高危漏洞。星期体验了一把。

这个星期对安全漏洞有个直观的认识。

很久前就听闻Struts2爆出高危漏洞。

星期体验了一把。

myyong 上的struts2示例代码拷贝下来。

把版本改到 2.2.3 ,然后运行。

让安全测试人员渗透下。

结果分分钟,我电脑就被拿下了,直观的就是他可以访问的我电脑的文件系统,查看修改拷贝文件。

想想,如果是生产环境,服务器上的文件就可能遭到泄漏。

做为开发人员,如果没有第三方的通知,可能都不会意识还有这个问题。

所以觉得合格的开发人员应该了解常见的安全入侵手段。

在编程业务逻辑的时候,除了正向的考虑,也需要反向的考虑。

比如习惯性的假设有恶意攻击者,会出现怎么样的后果。

这样肯定是可以避免很业务逻辑安全漏洞。

后来好奇心让我想了解它的原理。

参考 struts2漏洞原理及解决办法

原理

Struts2的核心是使用的webwork框架,处理 action时通过调用底层的getter/setter方法来处理http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介绍)语句。

当我们提交一个http参数:

?user.address.city=Bishkek&user[‘favoriteDrink’]=kumys

ONGL将它转换为:

action.getUser().getAddress().setCity("Bishkek") 
action.getUser().setFavoriteDrink("kumys")

这是通过ParametersInterceptor(参数过滤器)来执行的,使用用户提供的HTTP参数调用 ValueStack.setValue()。

为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了 Java 的 unicode字符串表示\u0023,攻击者就可以绕过保护,修改保护Java方式执行的值:

安识科技伏特漏洞云扫描平台st2_045 API https://v.duoyinsu.com/api/st2_045?url=xxxx

未完待续,,,

其实是想在代码层面分析下过程,暂时没有时间来做


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ASP.NET 2.0技术内幕

ASP.NET 2.0技术内幕

埃斯帕斯托 / 施平安 / 清华大学出版社 / 2006-8 / 68.00元

《ASP.NET2.0技术内幕》围绕着ASP.NET 2.0是Web开发的重要分水岭这一主题,采用自顶向下的方式介绍ASP.NET 2.0的最新编程实践,从更广泛的特征到具体的实现和编程细节,充分展示了ASP.NET的最新编程实践。全书共15章,主题涉及HTTP运行库、安全性、缓存、状态管理、控件、数据绑定和数据访问。   《ASP.NET2.0技术内幕》主题丰富,讲解透彻,包含大量实例,是......一起来看看 《ASP.NET 2.0技术内幕》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试