PHP文件包含漏洞原理分析|美创安全实验室
2、PHP远程文件包含漏洞获得网站WebShell
同样还是采用相同的服务器代码,其中PHP配置文件中,allow_url_fopen和allow_url_include两个参数都必须是ON的状态。
目标服务器地址:192.168.20.35
攻击者远程服务器:192.168.210.102
在攻击者个人服务器上,放置了一个恶意文件(index.txt),如下:
该文件可以向目标服务器上创建一个hack.php脚本文件,并向其中写入一句话木马(已被Base64加密),这里要注意的是恶意文件不能是php可解析的扩展名,也就是不能以php结尾。
攻击者通过远程文件包含漏洞,触发该文件(在file参数处写入http://192.168.210.35/index.txt即可),如下:
然后攻击者就可以通过连接工具,远程连接木马并获得网站WebShell
防御方案
1、设置白名单
代码在进行文件包含时,如果文件名可以确定,可以设置白名单对传入的参数进行比较。
2、过滤危险字符
由于Include/Require可以对PHP Wrapper形式的地址进行包含执行(需要配置php.ini),在Linux环境中可以通过”../../”的形式进行目录绕过,所以需要判断文件名称是否为合法的PHP文件。
3、设置文件目录
PHP配置文件中有open_basedir选项可以设置用户需要执行的文件目录,如果设置目录的话,PHP仅仅在该目录内搜索文件。
4、关闭危险配置
PHP配置中的allow_url_include选项如果打开,PHP会通过Include/Require进行远程文件包含,由于远程文件的不可信任性及不确定性,在开发中禁止打开此选项,PHP默认是关闭的。
5、提升安全开发意识
任意文件包含漏洞的主要出现在能够解析处理脚本文件的函数上,没有对输入的变量进行过滤,导致任意文件包含,进而导致恶意代码执行。在开发处理这类功能函数上,一定要遵循编程规范;在代码核心处,对变量进行过滤限制,设置文件路径或者白名单,避免执行任意文件包含。
图片新闻
最新活动更多
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
精彩回顾立即查看>> 2024 智能家居出海论坛
-
精彩回顾立即查看>> 2024中国国际工业博览会维科网·激光VIP企业展台直播
-
精彩回顾立即查看>> 【产品试用】RSE30/60在线红外热像仪免费试用
-
精彩回顾立即查看>> 2024(第五届)全球数字经济产业大会暨展览会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论