Struts2漏洞修复方案

独自等待 2017年5月10日20:35:37评论351 views字数 1154阅读3分50秒阅读模式

最近strtus2漏洞爆发,严重影响了网站安全,很多站有提供测试工具,当然不排除本站,但是却少有人提及修复方案,今天看到了91ri.org上面的修复方法,转过来共享之,修复方案原作者为空虚浪子心。本站转的只是关键代码,代码自己拿去分析,其实我也看不懂,只希望能帮助需要帮助的人。

首先升级到最新版本。

在ognl这个语言的入口,加入拦截代码,一旦发现危险调用,直接干掉。

代码原理是,在OGNL执行之前,对语句做判断,看到有黑名单的代码,就干掉。理论上,开发人员理论上不会自己写OGNL用于操作文件,执行命令等,他们最多从session中取一个值,或者在页面上取一个值。

覆盖掉Ognl.Ognl类,添加如下代码:

public static Object parseExpression(String expression)
            throws OgnlException {
 //。。。下面是白名单列表,请各位同学自行搜索java危险代码,之后加入列表,实在不会的,找几个webshell看看,我肯定不会把阿里正在使用的列表告诉你们的。
        String evalMethod[] = { "Runtime", "new file" };
        String methodString = null;
        methodString = expression.toLowerCase();
        for (int i = 0; i < evalMethod.length; i++) {
            if (methodString.indexOf(evalMethod[i].toLowerCase()) > -1) {
                Log.securityLog(Log.getInfo()+"|OGNL正在执行恶意语句|" + methodString
                        + "|看到这个消息,请联系安全工程师!!!","[email protected]");
            }
        }

        try {
            OgnlParser parser = new OgnlParser(new StringReader(expression));
            return parser.topLevelExpression();
        } catch (ParseException e) {
            throw new ExpressionSyntaxException(expression, e);
        } catch (TokenMgrError e) {
            throw new ExpressionSyntaxException(expression, e);
        }
    }

为什么要加入QQ邮箱呢?具体原因不说,只说结果,结果是,我的邮箱可以收到0DAY,你如果真的看懂了,自己猜猜原因?

原文地址:

http://www.inbreak.net/archives/507

http://www.91ri.org/6629.html



from www.waitalone.cn.thanks for it.

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
独自等待
  • 本文由 发表于 2017年5月10日20:35:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Struts2漏洞修复方案https://cn-sec.com/archives/50183.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息