##0X00 前言:
尽管s2-045的poc已经烂大街了,博主只是想学习了解一下它的用法,顺带写了一个测试小工具。
##0x01 漏洞简介
Apache Struts是一套用于创建企业级Java Web 应用的开源MVC框架 。
Apache Struts 2.3.5 – 2.3.31版本及2.5 – 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152 ,CVE-2017-5638)。该漏洞是由于上传功能的异常处理函数没有正确处理用户输入的错误信息。导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意命令。
漏洞编号:S2-045
CVE编号:CVE-2017-5638
漏洞类型:远程代码执行
漏洞级别:高危
漏洞风险:黑客通过利用漏洞可以实现远程命令执行。
影响版本:struts2.3.5 – struts2.3.31 , struts2.5 – struts2.5.10
##0x02 简单的漏洞分析
由于当content-type中出现"multipart/form_data"时,会被认为有文件上传,从而调用struts2默认的上传文件组件Jakarta,通过组件漏洞载入OGNL代码并执行,从而达到远程调用的目的。
##0x03 poc代码段
下面是一段网上的poc的header部分代码,主要分为三个部分
(1)用来触发文件漏洞,声明为文件上传
%{