struts2远程执行漏洞学习(一)
????? 首先,这个漏洞已经是比较早的一个了,大概影响范围是struts2.2.1.1以下版本(这个其实是不对的),其次值得参考的参考的网上公开资料有
?
?http://security.ctocio.com.cn/100/11466600.shtml
这是我看过的唯一的一篇对这个漏洞有一定深入讲解的文章。
?
http://www.securityfocus.com/archive/1/521121
这个是一个发散的文章,指出了struts2的高版本的一些人在持续的问题,其中很多都是高危的。
?
http://grepcode.com
??? 这是一个很关键的网站,在这里你可以直接下载到不同的struts2的版本,以及其中用到的xwork,ognl的jar包以及源代码和api文档。只有自己重现了这个,才可以深入研究struts2的版本演化。
?
?
?
??????? 其次struts2的这个漏洞的实质是ognl的灵活表达问题,我们在struts2中的自动填充变量(就是我们习惯的get,set,而不用手动再繁琐的request.getParmeter())。但是ognl的能力远超这些,他可以在变量及赋值过程访问上下文变量,执行java静态方法,甚至于新建java对象,及调用对应方法。
?
????? struts2的漏洞就是缘于此。