[BUUOJ记录] [极客大挑战 2020] Roamphp1-Welcome
简单的基础题
打开题目看到一片空白,查看HTTP状态码看到405:
改用POST请求方式再次请求:
得到源码:
<?php
error_reporting(0);
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header("HTTP/1.1 405 Method Not Allowed");
exit();
} else {
if (!isset($_POST['roam1']) || !isset($_POST['roam2'])){
show_source(__FILE__);
}
else if ($_POST['roam1'] !== $_POST['roam2'] && sha1($_POST['roam1']) === sha1($_POST['roam2'])){
phpinfo(); // collect information from phpinfo!
}
}
重点关注这里:$_POST['roam1'] !== $_POST['roam2'] && sha1($_POST['roam1']) === sha1($_POST['roam2'])
注意两个判断都是强等于,这里利用PHP黑魔法数组绕过来绕过检测,原理就是PHP的sha1()函数无法处理数组类型,因而当传入数组时第二个判断就会返回True,构造Payload:
roam1[]=1&roam2[]=2
带上数据再次POST请求得到phpinfo,在环境变量中找到Flag:
看了一下原题解,原题应该是查看phpinfo信息得到flag所在文件位置:
访问l/f1444aagggg.php却发现404:
但是认真看看却发现和正常的404不太一样:
然后认真查看返回包的头信息获得Flag:
[ * ]博客中转载的文章均已标明出处与来源,若无意产生侵权行为深表歉意,需要删除或更改请联系博主: 2245998470[at]qq.com