WP CTF-Web 攻防世界 CSFJ0234 PHP2
「场景」
「过程」
创建场景后,点击得到的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?
「工具」
- 网站后台扫描工具:御剑
- 在线编码解码工具:https://www.bejson.com/encrypt/crpyurl16/
「知识拓展」
浏览器会对url栏的链接进行一次解码