[WP] 攻防世界 CSFJ0234 PHP2

发布时间 2023-06-26 22:12:11作者: 没事摸摸小肚子

「场景」

http://61.147.171.105:54099/

「过程」

创建场景后,点击得到的URL,在F12开发者工具中收集信息。

服务器:Apache
语言:PHP

直接上御剑扫描

发现/index.php

总所周知,phps 即 PHP Source,是php的源代码文件。通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。
将/index.php 改为 /index.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请求参数,才能返回Key,但不能直接写admin,要使用php的urlencode函数处理,由于浏览器会自动对url解码,所以要用url编码两次,再发送请求。

对a进行十六进制编码

再对%61进行十六进制编码

然后用%25%36%31替换a,即/index.php?id=%25%36%31dmin
解出flag

Access granted!
Key: cyberpeace{2bb2e841959b605802671171f44081f9}
Can you anthenticate to this website?

「工具」

「知识拓展」

浏览器会对url栏的链接进行一次解码