产生漏洞的原因为:当启用动态方法调用时,可以传递可用于在服务器端执行任意代码的恶意表达式。
method: < name > Action 前缀去调用声明为 public 的函数,但是在低版本 的Strtus2中并不会对 name 方法值做 OGNL 计算,反而在高版本中会进行计算。
打开靶场网页,等网页加载完。如果没有加载完(靶场环境可能没有完全部署好),可能会影响工具检测结果。
Struts2漏洞检查工具2017版下载地址:https://www.jb51.net/softs/574358.html。
方法一:打开Struts2漏洞检查工具2017版。将靶场网址输入进去,数据提交方式更改为get。
点击验证漏洞,查看是否存在漏洞。发现有两条漏洞警告信息。
得知有漏洞后,我们可以开始命令执行,在漏洞编号处选择刚才扫描出来的漏洞编号。输入ls命令,可以看到所有的文件。其中看到了key.txt文件。于是我们再输入cat key.txt命令查看该文件内容,得到了本题的key(mozhe44c4595008ae02d96d94cd6600c)。