当前位置:首页 > 开发 > Web前端 > 前端 > 正文

关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要

发表于: 2015-05-22   作者:chenbowen00   来源:转载   浏览:
摘要: 因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。 下面记录下本次解决的过程以便后续 1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议, 而使用ftp协议默认会产生一个匿名用
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用户,因此解决方案是删除该匿名用户。
2、再次就是解决跨站执行脚本的漏洞,首先在网上各种资料查找,彻底的了解了什么是跨站脚本漏洞以及产生的原因,也终于明白了为什么我们的项目会存在问题,主要是在JSP中存在直接将输入内容回显到页面中,并且未对输入内容做任何检查。
知道问题原因当然就开始修改了,鉴于对安全这块了解不深,自己写的过滤器也非常简单,仅能过滤一些情况还是会存在风险,因此在网上找了一个专门安全大拿写的针对java过滤xss的处理类(xss-html-filter-xss-html-filter-1.5)。有了这个利器
就开始将它融入到我们系统中了,因为目前系统已经处理交付阶段,不便于一个类一个类进行调整,因此预想统一使用了过滤器过滤输入内容。当然这里有遇到一些问题
因为HttpServletRequest类中没有提供重新设置paramter值的方法(项目中多使用getParamter获取参数),所以想到了使用装饰模式,即封装getParamter方法(其实getAttribute等一些方法也封装了;ps:只针对String类型处理),在返回值时过滤输入值,这里继承了httpservletrequestwrapper类,
然后再注册一个filter,经过验证确实达到了过滤输入字符串的目的。
3、最后解决的是远程漏洞执行,这个主要是因为项目本身使用了struts2,并且版本是比较低的2.3.4,网上很多都有描述低版本的存在风险,因此从官网下载了最新的2.3.24,然后就是各种替换jar包。
替换完后启动项目又发现报错,说需要使用新的filter,原来老的FilterDispatch已经建议不使用了,struts2建议使用新的StrutsPrepareAndExecuteFilter。配置上最新的filter类后启动没有问题呢,但是
有报错“There is no Action mapped for namespace[/] and action name [login] associated with context path [/login]”,解决此问题只需要通过在struts.xml根节点中添加如下节点<constant name="struts.enable.DynamicMethodInvocation" value="true"/><constant name="struts.convention.action.mapallmatches" value="true" />

关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
漏洞类型:跨站脚本攻击(XSS) 1.跨站脚本攻击就是指恶意攻击者向网页中插入一段恶意代码,当用户
漏洞类型:跨站脚本攻击(XSS) 1.跨站脚本攻击就是指恶意攻击者向网页中插入一段恶意代码,当用户
Struts2转码有个bug,可以导致应用挂掉(也可以执行类似 rm –rf /root,只要有权限的话) 在访问你
Struts2转码有个bug,可以导致应用挂掉(也可以执行类似 rm –rf /root,只要有权限的话) 在访问你
首先,这个漏洞已经是比较早的一个了,大概影响范围是struts2.2.1.1以下版本(这个其实是不对的),
简要描述: msnshell是国内一款多功能的msn辅助工具,有着方便而强大聊天加密功能,使其用户群非常
webview远程代码执行漏洞的原理及影响,网上资料很多了,这里不赘述。 主要来看该漏洞触发有几个条
JBOSS远程代码执行漏洞 JBOSS默认配置会有一个后台漏洞,漏洞发生在 jboss.deployment命名空间 中的
首先,这个漏洞已经是比较早的一个了,大概影响范围是struts2.2.1.1以下版本(这个其实是不对的),
这个是终结部分了。 除了#_memberAccess.allowStaticMethodAccess'是一个关键属性外,'xwork.Method
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号