XCTF-PHP2
PHP2
进来就一句话
Can you anthenticate to this website?
直接上御剑扫了一下目录,什么都没得
而且GET/POST没有参数,看了cookie也没有参数,fuzz了一会儿,没有结果 = =
于是猜测是源码泄露,emmm,尝试了一遍常用的备份文件后缀无果
去看了wp,用的是phps
phps类型通常用来给用户查看源代码
拿到源码
<?php
if("admin"===$_GET[id]) {
echo("<p>not allowed!</p>");
exit();
}
$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{
echo "<p>Access granted!</p>";
echo "<p>Key: xxxxxxx </p>";
}
?>
Can you anthenticate to this website?
要满足两个要求
$_GET[id] !=== "admin"
,===要求对比的字符串必须是相同类型,那么需要类型不是字符串,或者内容不是admin,传入类型一般都是字符串- urldecode之后
$_GET[id] == admin
,(==会把变量转换为相同类型,再比较)
想到了warm_up的里考的知识点,服务器接收到参数后会自动进行一次urldecode,而后才是应用的数据处理
这里还有个知识点,所有的ascii字符都可以用%xx
来代替传入
所以对admin进行两次url编码即可(全部/部分都可),URL编码表
payload:%2561dmin
(urldecode(%25) == %)