小风福利公众号
扫描二维码
关注“外卖干饭精灵”公众号
领本站送出的无门槛20元外卖红包
回复“黑客”领取学习资料
最新文章
热门文章
文章详情
文件包含漏洞的原理解析
一、什么是文件包含?
服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。
二、文件包含函数
PHP中文件包含函数有以下四种
require() require_once() include() include_once()
三、漏洞产生的原因
文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。
例:
<?php $filename = $_GET['filename']; include($filename); ?>
$_GET['filename']参数开发者没有经过严格的过滤,直接带入了include的函数,攻击者可以修改
$_GET['filename']的值,执行非预期的操作。
四、本地文件包含漏洞
以下代码是最简单的一个文件包含示例,程序没有对要包含的文件进行验证,导致可控。
<?php $file = $_GET['file']; if(isset($file)){ include("$file"); }else{ echo "file fail"; } ?>
内容输出如下图:
这样的代码过于危险,可以轻易的得到账号和密码,所以很少有人这么写,但有些防护措施是很差的。
五、远程文件包含漏洞
1.包含读出目标机上其它文件
由前面我们可以看到,由于对取得的参数page没有过滤,于是我们可以任意指定目标主机上的其它敏感文件,例如在前面的警告中,我们可以看到暴露的绝对路径(vhost/wwwroot/php/),那么我们就可以多次探测来包含其它文件,比如指定URL为:http://hi.baidu.com/m4r10/php/index.php?page=./txt.txt可以读出当前路径下的txt.txt文件,也可以使用…/…/进行目录跳转(在没过滤…/的情况下);也可以直接指定绝对路径,读取敏感的系统文件,比如这个URL:http://hi.baidu.com/m4r10/php/index.php?page=/etc/passwd,如果目标主机没有对权限限制的很严格,或者启动Apache的权限比较高,是可以读出这个文件内容的。
2.远程文件包含可运行的PHP木马
如果POST的数据是执行写入一句话木马的PHP代码,就会在当前目录下写入一个木马。
<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>
下面就可以用菜刀或者是蚁剑了。
上一文章:批量文件夹名称前面加指定字符
下一文章:什么是XXE漏洞?XXE漏洞原理分析
相关推荐
- 05-04一个人一个工念什么?上面一个人下面一个工怎
- 11-26编程语言有哪几种?
- 10-10黑客常见的4种勒索方式
- 04-17一个连有多少人?一班一排一连一营一团多少人
- 01-14自学Linux要多长时间?多久才能学会
- 07-02怎样自学成为黑客,如何0基础成为一名黑客?
- 05-10vpn如何做好安全加固(看上交所网络安全攻防
- 05-23怎么解决电脑会卡这个问题?
- 09-09web安全入门路线及资源整理
- 01-10黑客入门的第一本书推荐这一本
- 10-28web安全问题有哪些?包括哪些方面?web安全分
- 06-10怎么样让Edge浏览器更好用?
- 05-02少儿编程网课平台哪个好
- 09-16web安全和网络安全哪个更难?