题目:PHP2 难度:1
步骤一
工具:kali Linux 中的dirb工具
进入kali root用户,代码如下:
sudo su
输入kali密码
运行dirb ,扫描网页。代码:dirb http://xxxx
dirb http://61.147.171.105:59819
得到一个index.php文件
index.php是一个常见的文件名,通常用于Web服务器中的网站根目录下。它是默认的主页文件名,在访问一个网站时,如果没有特别指定页面文件名,则服务器会自动加载index.php文件。
在Web中,index.php文件通常是网站的入口文件。它包含了处理用户请求的代码,等,同时,它是连接后端逻辑与前端界面的桥梁之一。
步骤二
将index.php添加到URL后 。
http://61.147.171.105:59819/index.php
但是网页无回显。
步骤三
百度一下,发现php拓展文件有.phps。phps又称为源码查看器。
因此通过查阅进入/index.phps查看,得到如下网页。
步骤四
这段代码我也看不懂,查了百度也查了ai,后面明白了大致的意思:
-
首先,代码检查传递给脚本的GET参数
id
是否等于字符串 "admin",如果是,则输出 "<p>not allowed!</p>" 并退出脚本。 -
接着,代码对传递给脚本的GET参数
id
进行URL解码。 -
然后,代码再次检查
id
是否等于 "admin"。如果是,它会输出 "<p>Access granted!</p>" 以及一个密钥。
需要最终得到 http://61.147.171.105:59819/index.phps?id=admin
说人话,就是我们要输入一个参数,让他进行URL解码,在解码后等于admin。那也就是我们要对admin进行URL编码,得到这个参数。
步骤五
启动URL编码工具(网上搜会有很多,如CTF工具CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码、御剑、在线转码器等等)
我这里用的是burpsuite
步骤六
将进行url编码后的结果 %61%64%6D%69%6E 添加到http://61.147.171.105:59819/index.phps后,即ttp://61.147.171.105:59819/index.php?id=%61%64%6D%69%6E
发现还是不行,后面再次百度得出结论:浏览器会对GET参数进行一次URL解码,所以原先的id是admin进行两次URL编码的。
再次url编码得到 %2561%2564%256D%2569%256E
替换id=后的参数,得出flag
Key: cyberpeace{1a52bef77d4175fabacc34d7b3c7def6}