20200907-XCTF-PHP2(URL二次编码)

20200907-XCTF-PHP2(URL二次编码)

九月 07, 2020

20200907-XCTF-PHP2(URL二次编码)

唉这题太草了,我自己的字典跑了半个小时的目录没结果,一看wp是index.phps (吐血
index.phps

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if("admin"===$_GET[id]) {
echo("<p>not allowed!</p>");
exit();
}
//这里回对get传参进行一次url解码($_GET会默认解码一次(大约是这样的))
/*Warning
超全局变量 $_GET 和 $_REQUEST 已经被解码了。对 $_GET 或 $_REQUEST 里的元素使用 urldecode() 将会导致不可预计和危险的结果。*/
$_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?

仔细一看超级简单的,只要urlencode两次就好了
结果用php编码半天就一直是admin草了
最后利用burp进行编码了两次就可了
image.png

payload:
index.php?id=%2561%2564%256d%2569%256e

阅读资料:
https://www.php.net/urldecode