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) == %)

posted @ 2020-04-01 17:17  R3col  阅读(389)  评论(0编辑  收藏  举报