https://polict.net/blog/CVE-2018-17057
运行的时候发现并没有执行,查看tail -f /var/log/apache2/error.log
,发现:
[Tue Mar 19 19:16:16.029024 2019] [:error] [pid 3953] [client 192.168.96.1:33895] PHP Fatal error: Uncaught UnexpectedValueException: creating archive "test.phar" disabled by the php.ini setting phar.readonly in /var/www/phar_demo.php:2\nStack trace:\n#0 /var/www/phar_demo.php(2): Phar->__construct('test.phar')\n#1 {main}\n thrown in /var/www/phar_demo.php on line 2, referer: http://192.168.96.129/
查stackoverflow发现:https://stackoverflow.com/questions/34667606/cant-enable-phar-writing
默认情况下,是关闭了,需要在php.ini中手动开启。
需要将其修改为Off:
phar.readonly = Off
开启之后重启apache。
漏洞触发点在使用phar://协议读取文件的时候,文件内容会被解析成phar对象,然后phar对象内的Metadata信息会被反序列化。