php正则函数抓取网页连接( 0x03修复方案1.使用青藤云安全产品可以全面检测该漏洞)
优采云 发布时间: 2022-01-04 03:10php正则函数抓取网页连接(
0x03修复方案1.使用青藤云安全产品可以全面检测该漏洞)
这里是邮件订阅的一个参数。让我们跟踪看看 phpmailer 在后端是如何处理的:
接下来phpmailer会调用html2text进行处理,相关代码如下:
我们可以看到在发送之前是交给html2text处理的,然后phpmailer发送的,我们在这里跟踪html2text看看它是如何处理的:
可以看出preg_replace使用了e参数,将正则处理的内容发送出去。
通过上面的代码,我们重新整理了一下。电子邮件是拼接用户输入的字符串。虽然使用了mysql_real_escape_string,但并不能证明它是安全的。然后输入html2text的preg_replace,然后正则表达式就只有/e表达式,导致代码执行。
我们来看看官网提供的最新版本。在github上,我们可以通过查看changelog看到:
phpmailer由于兼容性问题不再提供html2text,需要用户自行编写。其实很多开发者还在使用之前官网提供的html2text。让我们搜索相关的cms:
我发现许多仍在使用。当然,它本质上不仅仅影响phpmailer。任何使用 html2text 的人都可能存在远程命令执行漏洞。
0x02 相关案例
邮箱订阅时,使用Burp Suite的repeater修改email参数的内容:
成功执行命令。敏感字符虽然被过滤掉了,但是还是可以通过ASCII码绕过的,比如反向shell。
由于该漏洞容易被利用,攻击成本低,影响范围广,青腾云安全建议广大站长和厂商立即修复该漏洞。
0x03 修复计划
1.使用青藤云安全产品全面检测此漏洞。
2. 修改html2text中的正则表达式,取消/e参数。