
在安全领域,远程执行代码漏洞是极为危险的,而CVE-2017-5638正是这样一种漏洞。其核心在于上传功能的异常处理函数未能妥善处理用户输入错误信息,使得攻击者能够通过修改HTTP请求头中的Content-Type值,构造恶意数据包。一旦成功,攻击者便能执行任意系统命令在受影响的服务器上。此漏洞影响的版本包括Struts 2.3.5至Struts 2.3.31,以及Struts 2.5至Struts 2.5.10。为了复现这个漏洞,首先需要在Kali环境中搭建环境。具体操作步骤如下:进入/vulhub/struts/s2-045目录并执行sudo docker-compose up -d命令,以启动容器。容器启动后,通过访问192.168.116.149:8080进行漏洞复现。接下来,构建payload:%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vulhub',233*233)}.multipart/form-data。使用Burp Suite进行包插入操作。在POST请求中加入上述payload。经过执行,可以看到233*233指令被成功执行。这一过程验证了漏洞的存在。总结而言,CVE-2017-5638漏洞允许攻击者通过恶意构造的请求在Struts 2.3.5至Struts 2.3.31,以及Struts 2.5至Struts 2.5.10的服务器上执行任意命令。复现过程揭示了攻击者利用漏洞的方法,以及如何通过构建特定payload进行验证。这提醒了开发人员和安全专家,必须对上传功能进行更严格的输入验证,以防止此类漏洞的利用。
