struts2安全漏洞修复

  1、登陆界面Sql注入

    users = daoSrv.findByHql("from Manager m where m.mngName='" + username +"'");
    if(users.size() == 1 &&((Manager)users.get(0)).getMngName().equals(username)){
     Manager manager = (Manager)users.get(0);
    username可以注入or 1=1查出所有用户,所以这里要加上对象判断
2、Struts安全漏洞
互联网 写道
Struts2曝高危远程执行漏洞:中国互联网又遭浩劫

7月17日消息,Struts 2今日被曝出远程执行漏洞。Struts漏洞影响巨大,受影响站点以电商、银行、门户、政府居多。而且一些自动化、傻瓜化的利用工具开始出现,填入地址可直接执行服务器命令,读取数据甚至直接关机等操作...

据@乌云漏洞报告平台的消息,淘宝、京东、腾讯等大型互联网厂商存在该漏洞,目前影响厂商扔在增长中。而且漏洞利用代码已经被强化,可直接通过浏览器的提交对服务器进行任意操作并获取敏感内容!

 

近期发现struts2本身存在的一个严重安全漏洞,见:

   http://struts.apache.org/release/2.3.x/docs/s2-016.html ,

   http://struts.apache.org/release/2.3.x/docs/s2-017.html

 

解决方法

-------------------------------------------------------------------------------

测试方法
访问地址:http://Host/login.action?redirect:%25{3-4}
建议修复前使用此链接测试struts2是否存在此漏洞。测试结果如下:
情况一:地址栏出现:http://Host/-1时说明未修复成功,存在安全漏洞;
情况二:地址栏出现:http://Host/login.action?redirect:%25{3-4},说明修复成功。
 

漏洞修复步骤:

1、删除工程的WEB-INF\lib目录下的commons-lang3-3.1.jar、javassist-3.4.GA.jar、ognl- 3.0.5.jar、struts2-core-2.3.4.1.jar、xwork-core-2.3.4.1.jar(如果找不到完全对应的jar文件,请删除版本号较低的),然后复制lib文件夹中的jar文件到工程的WEB-INF\lib目录下

2、修改web.xml文件中的Struts2过滤器配置如下:

<filter>
 <filter-name>struts2</filter-name>
 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

3、重启服务。

Lib相关更新文件见附件

---------------------------------------------------------------------

猜你喜欢

转载自eddysoft.iteye.com/blog/1911561