攻防世界 WEB 高手进阶区 PHP2 Writeup

攻防世界 WEB 高手进阶区 PHP2 Writeup

题目介绍

image-20210112150604809

题目考点

  • url 二次解码
  • index.phps 文件(第一次使用dirsearch可能扫不到,需要加到工具字典里)
  • php 简单语法

Writeup

进入题目

image-20210112150816944

研究一番无果,开始拿 dirsearch 扫描目录

image-20210112150928132

依次尝试访问,最后在访问 index.phps 时发现源码泄露

image-20210112151031146

右键查看源码

image-20210112151110214

分析PHP源码 ,不出意外,那个 key 的内容就是 Flag

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>";
}

首先要绕过第一个if,然后在经过一次 urldecode,满足第二个if才能输出 flag

urldecode(%2561)=%61
urldecode(%61)=a

巧妙利用两次url解码,第一次浏览器url解码使第一个if不成立,第二次程序内部url解码刚好满足第二个if条件

构造 url 直接得到 flag

http://220.249.52.134:45849/index.php?id=%2561dmin 注意是%2561dmin,前面博客不知原因不显示 25

image-20210112164437375

posted @ 2021-01-12 16:47  FreeK0x00  阅读(129)  评论(0编辑  收藏  举报