Struts 2的开发者模式相信很多Struts2的开发人员都很熟悉了,在这种模式中,如果你发出一个HTTP请求,会生成冗余的日志,资源重新加载,避免我们每次改变属性、校验器或者其他东西后都需要重启服务器。 然而有件事情并不是特别广为人知(事实上它甚至没有出现在Struts2开发者模式的官网上):它能够让OGNL插入后门,允许开发人员轻松地从OGNL的控制台检查他们的值栈或者申请参数。这个对开发者来说十分方便的功能一旦被应用程序标示后发布在生产服务器就变成了一个可怕的安全噩梦。
如果我们查看“调试”页面,我们就可以看到一些它是如何工作的相关信息。它使调试截断器给我们带来了一些有趣的指令:
命令:测试OGNL表达式,并返回字符串结果。仅由OGNL控制台使用。
所以我们只要加载下面的页面就可以滥用这个功能执行任何命令:
注意,即使是Struts2的最新版本也会运行(其中“允许静态方法访问“使用以前的帖子的净荷解释。
现在,你可能想知道谁在开发模式上发布应用程序了吧?那么自己去检查一下:
所以,千万不要忘了在发布应用程序到生产服务器之前把开发模式禁用掉。
参考链接:http://www.pwntester.com//blog/2014/01/21/struts-2-devmode/
【via@91Ri.org团队】
Copyright © hongdaChiaki. All Rights Reserved. 鸿大千秋 版权所有
联系方式:
地址: 深圳市南山区招商街道沿山社区沿山路43号创业壹号大楼A栋107室
邮箱:service@hongdaqianqiu.com
备案号:粤ICP备15078875号