CVE-2019-25295CVE-2019-25295是WordPress平台下WP Cost Estimation(付款表单构建器)插件中的一个高危安全漏洞。该插件用于创建成本估算和付款表单,在WordPress生态中拥有广泛的用户群体。漏洞存在于插件的uploadFormFiles函数中,攻击者可以利用目录遍历技术(Directory Traversal)在文件上传过程中将恶意文件写入服务器上的任意位置。攻击者通过构造特殊的文件上传请求,在文件名中包含路径遍历字符序列(如../),可以绕过插件的文件上传验证机制,将具有白名单扩展名的文件(如.php、.jpg等)写入到网站根目录或其他敏感目录。由于该漏洞无需认证即可利用(PR:N),且可以通过网络远程发起攻击(AV:N),因此具有较高的实际威胁性。攻击者成功利用此漏洞可以覆写网站的配置文件、主题文件或其他关键文件,从而实现远程代码执行,完全控制受影响的WordPress网站。此漏洞影响9.660之前的所有版本,Wordfence安全团队于2019年2月披露了此漏洞并发布了安全公告。
WP Cost Estimation插件的uploadFormFiles函数在处理文件上传时存在严重的路径遍历漏洞。该函数在接收用户上传的文件时,未能正确验证和清理用户提供的文件名参数,允许攻击者通过在文件名中注入路径遍历序列来指定任意文件路径。漏洞的技术原理如下:首先,插件在处理文件上传请求时,直接将用户提交的文件名用于构建目标保存路径,而没有对文件名进行充分的过滤和验证。其次,函数允许文件名中包含../等目录遍历字符,这些字符在路径处理时会被正确解析为上级目录,从而允许攻击者将文件写入到插件目录之外的任意位置。攻击者可以利用此漏洞覆写WordPress的核心文件(如wp-config.php)、主题文件或.htaccess等敏感文件。由于插件对文件扩展名进行了白名单验证,攻击者需要使用白名单内的扩展名(如.php)来绕过扩展名检查,但这并不影响攻击者将文件写入到期望的位置。攻击者通常会先上传一个包含恶意代码的PHP文件,然后通过访问该文件来执行任意代码,实现对网站的完全控制。