Struts是Apache软件基金会Jakarta项目组的一个开源项目,它采用MVC模式,帮助java开发者利用J2EE开发Web应用。目前,Struts广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用。7月17日,Apache官方公布了Struts最新的两个安全漏洞,一个是远程命令执行漏洞,另一个是重定向漏洞。
远程命令执行利用
我们根据提供的PoC代码构造一个简单的命令执行的URL,具体内容为假如网站导航后缀为action等加入构造的特殊的未经过滤的命令符的话例如http://192.168.100.138:8080/struts2-blank/example/HelloWorld.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'calc'})).start()}。这个URL的作用是在服务端执行命令calc,也就是执行一个计算器。从服务端的任务管理器中我们可以看到执行的结果,并且执行的用户名是SYSTEM。
重定向漏洞利用
相对于远程命令执行漏洞来说,重定向漏洞或许没有那么严重的危害,重定向漏洞的利用比较简单,只需要在存在漏洞的URL地址后面加上重定向参数前缀及希望跳转到的地址即可,如http://192.168.100.138:8080/struts2-blank/example/HelloWorld.action?redirect:http://www.baidu.com,这个地址的作用是在用户访问这个存在漏洞的URL地址时,会自动跳转到百度首页
远程命令执行利用
我们根据提供的PoC代码构造一个简单的命令执行的URL,具体内容为假如网站导航后缀为action等加入构造的特殊的未经过滤的命令符的话例如http://192.168.100.138:8080/struts2-blank/example/HelloWorld.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'calc'})).start()}。这个URL的作用是在服务端执行命令calc,也就是执行一个计算器。从服务端的任务管理器中我们可以看到执行的结果,并且执行的用户名是SYSTEM。
重定向漏洞利用
相对于远程命令执行漏洞来说,重定向漏洞或许没有那么严重的危害,重定向漏洞的利用比较简单,只需要在存在漏洞的URL地址后面加上重定向参数前缀及希望跳转到的地址即可,如http://192.168.100.138:8080/struts2-blank/example/HelloWorld.action?redirect:http://www.baidu.com,这个地址的作用是在用户访问这个存在漏洞的URL地址时,会自动跳转到百度首页