经由进一步的安全测试,我们创造最新版本的PHP没有这个漏洞。我们对不同版本的PHP进行了进一步的安全测试,以确定这个漏洞到底是什么时候修复的。终极创造PHP 7.4.22版本存在该漏洞,我们的技能对未修补版本和已修补版本的代码进行了比较,创造了漏洞的修复细节,通过修复的代码,我们布局了漏洞的利用代码。
GET/phpinfo.php
HTTP/1.1
Host: pd.research\r\n\r\n
GET/ HTTP/1.1\r\n\r\n
我们为了全面理解这个 bug 以及它是如何被修复的,我们编译了带有调试符号的 PHP 的补丁版和未补丁版。为了验证(PoC)的要求,我们触发了代码透露 bug,并在调试器中不雅观察了代码流。php_cli_server_client_read_request 函数调用了 php_http_parser_execute 函数,正如它的名字所暗示的那样,用于解析 HTTP 要求。该函数的返回值是成功解析的字节数。这个值用于确定要求已经被处理了多少,还剩下多少未被解析。
目前通过我们SINE安全的监控,创造有许多做事器利用了PHP小于7.4.2版本,建议用户尽快升级PHP版本,并将一些数据库配置文件进行加密,防止被黑客利用,通过查查询数据库来获取管理员账户密码,以及用户的资料。