[CTF] 攻防世界-PHP2
题目
无任何提示,进入环境后界面和HTML如下
解题关键——phps
什么是 .phps 呢?
phps 文件就是 php 的源代码文件,通常用于提供给用户(访问者)查看 php 代码,因为用
户无法直接通过 Web 浏览器看到 php 文件的来内容,所以需要用 phps 文件代替。其实,只
要不用 php 等已经在服务器中注册过的 MIME 类型为文件即可,但为源了国际通用,所以才
用了 phps 文件类型。
(其实不知道可以尝试扫描路径)
真正题目:
官方WP
XCTF体验题库 : PHP2
【原理】
简单的代码审计、php源代码文件
【目的】
GET行参数的请求和url编码知识以及服务器的初次解码知识、了解phps文件
【环境】
Windows
【工具】
chrome
【步骤】
1.打开浏览器,访问http://111.198.29.45:45191/index.phps 得到主页源代码,如图所示。
2.进行代码审计,可看出需要用GET方式给id参数传递一个为“admin”的值,但是会经过一次urldecode(),会将传入的值进行url解码,所以要对admin进行两次url编码。
3.对admin字符串进行第一次url编码得到%61%64%6d%69%6e
4.将%61%64%6d%69%6e再次进行url编码得到%2561%2564%256d%2569%256e
5.访问http://111.198.29.45:45191/index.php?id=%2561%2564%256d%2569%256e 得到flag,如图所示。
官方题解补充
浏览器会自动对网址进行urldecode,所以实际传入的url是经过decode的,因此官方要两次encode。