综合前述phar的各种信息,在本文的内容中,苏南大叔将结合一个较为常见的php经典require任何包含文件漏洞,构建一个基于phar的一句话木马。这里,大家看看下面的php源码中,为什么上传文件的文件都不是.php文件,也不是.phar文件,却被安装执行了木马漏洞呢?

苏南大叔:利用phar文件构建php一句话木马的poc - phar-php-hack
利用phar文件构建php一句话木马的poc(图3-1)

本文测试环境:mac/php@7.1.7

漏洞简述

本文中php的漏洞点在于:主要基于require语句中的文件参数,可以由外部控制。然后我们通过文件上传,上传了一个由phar文件伪装的普通文本文件,再控制参数require到这个伪装的普通文本。并利用phar的虚拟文件方式,最终执行了我们的一句话木马。

$file = $_REQUEST['file'];
if ($file != '') {
   require($file);
}

上述代码,是最主要的漏洞点。

相关链接

结论

在本文中的,此类一句话木马的防范方法,也是非常简单的。比如:

  • 绝对不能相信用户输入的参数,一定要对用户输入的数据进行检测。
  • 绝对不能require(或者说include)用户能控制的文件。
  • php.ini中一定要禁用一些危险的php函数,比如eval。我们可以在php.ini中,设置disable_functionsdisable_classes 。但是eval是特殊的禁用方式。

关于php的安全问题,也是作为一名合格的phper所必备的基本功之一。关于php的安全问题,在苏南大叔以后的文章中,也会有所提及。

更多有关网络安全问题,可以点击这里查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    phar

本站的忠实读者小伙伴,正在阅读下面这些文章: