【ctf-web】 攻防世界 PHP2
进入网址,一句英文:你能向这个网站进行身份验证吗?

结合题目PHP2,拼尽全力想到了index.php(因为之前我创建网站的时候第一个文件就是它),页面没有变化(sad)
ps:创建网站的时候,配置通常会将 index.php 设为默认文件。在 PHP 框架中,index.php 也常常作为请求路由的入口点,负责将请求分发到合适的处理程序。

找了WriteUp看,这一步是打开index.phps。
phps是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。因为用户无法直接通过Web浏览器“看到”php文件的内容,所以需要用phps文件代替。
想到index.phps的思路有两种:
1.使用御剑扫描后台网站
2.尝试访问首页和一些关键目录及敏感文件
/index.phps
/login.phps
/admin.phps
/config.phps
/flag.phps
/backup.phps
/index.php.bak
/login.php.bak
/index.php~
/.index.php.swp
#带s和不带s的都尝试一下
查看index.phps,能看到源代码。

我读完感觉意思是“网页想获取指定输入值id=admin”,当即测试了index.php?id=admin,发现没有用。(因为变量名和表单会显示在url中,所以可以通过网址提交表单)

仔细一看,中间有个$_GET[id] = urldecode($_GET[id]);
urldecode:由于URL构成必须是ASCII码,所以URL编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符,使用 + 来替换空格。。
使用在线urlencode编码进行url编码(这里复杂程度要选所有类型都编码,不然不编码admin)

输入index.php?id=%61%64%6d%69%6e,页面返回‘not allow’,和之前输入index.php?id=admin一样。

网址在发送的一瞬间从“id=%61%64%6d%69%6e”变成了“id=admin”,这是因为浏览器会自动进行解码,相当于发送的还是id=admin。所以要在编码的基础上编码一次。

将新编码加入id中,获得flag:cyberpeace{74c207563b77c6787414fd495c5f8679}

浙公网安备 33010602011771号