PHP文件包含

2024-07-12 / 无评论

文件包含本质

就像python中的引入自定义库
例如我建立一个函数库,存放加法,放入common.php

<?php

function add($num1,$num2){
return $num1+$num2;
}

?>

其余的我进行include "common.php",就可以引用函数add
那么evalinclude辨析

  • 两者都不是函数,都是语言结构,无法通过配置文件函数禁用来禁用
  • include后面跟路径,表示要执行的php文件的路径,读取路径中文件内容,然后执行里面的php代码,不能直接跟代码
  • eval后面跟php的代码,表示要执行的php代码

php常见文件包含函数,语言结构

文件包含漏洞

文件包含漏洞是指通过文件包含时,包含的内容我们用户可控

例题web30

php伪协议

1.何为协议

网络层协议

应用层协议

2.协议的格式

协议头://内容

3.php中的协议

4.file协议

不写协议名称,默认为file协议

file://C:

相对路径&绝对路径
flag.php index.php

上层目录特性

  1. 每个目录都有上层目录
  2. 根目录的上层目录是根目录本身

    /var/www/html/../../../ => /目录(只要多就能走到根目录)

php目录整理

/var/www/html/ctfshow/../flag.php

等价于

/var/www/html/flag.php

例题web31
三元表达式
A?B:C
如果A成立,返回B的结果,否则返回C的结果

5.http协议

读取百度的robot.txt协议

<?php
echo file_get_contents("https://www.baidu.com/robots.txt");
?>

配合文件包含,可以读取远程的php代码并在本地执行,实现了最终RCE的效果

6.ftp协议

利用默认21端口,进行文件传输协议

7.php协议

下述两个是经常的协议

php://input

上述例题web32

php://filter

花活比较多例题web33
例题web34
还有data协议
例题web35

php的文件上传机制

$_GET $_POST

$_SERVER $_COOKIE

$_SESSION $_FILES

无回应:“PHP文件包含”

评论已关闭