将外部文件的内容引入当前环境:#include<stdio.h>
include
require
include_once
require_once
hightlight_file
show_source
readfile
fopen
file
php文件包含函数:
出现上面形式的文件包含函数,就存在文件包含漏洞
文件包含漏洞大多使用到php伪协议
用于访问本地文件系统,在ctf中通常用来出去本地文件
使用方法:
•file:// [文件的绝对路径和文件名]
file=file://D:/soft/phpStudy/WWW/phpcode.txt
可以访问请求的原始数据的只读流。即可以直接读取到POST上没有经过解析的原始数据。
这个参数是就是php解压缩包的一个函数,不管后缀是什么,都会当做压缩包来解压。
用法:?file=phar://压缩包/内部文件
phar://xxx.png/shell.php
zip伪协议和phar协议类似,但是用法不一样。
使用方法:
•?file=zip://[xxx]#[压缩文件内的子文件名]
zip://xxx.png#shell.php。
用于服务器上的文件内容读取
使用方法:
•?filename=php://filter/convert.base64-encode/resource=xxx.php
•?filename=php://filter/read=convert.base64-encode/resource=xxx.php
- include("urlstyle_flag.php");
- highlight_file(__FILE__);
- extract($_GET);
- if(!empty($aurora1))
- {
- $aurora3 = trim(file_get_contents($aurora2));
-
- if ($aurora1 == $aurora3)
- {
- echo $flag;
- }
- else
- die("nonono");
- }
使用php://input伪协议与上传漏洞结合,将post的内容作为上传文件的内容
如果原本是get请求,需要抓包改成post请求