关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客
0x01:考点速览
本题的考点如下:
-
通过在 PHP 文件后添加 s,可以查看 PHP 文件源代码。(头一次见,可能需要特殊配置)
-
URL 二次编码绕过,在使用 GET 请求时浏览器会自动进行一次 URL 解码。
-
URL 编码格式 -> %xx -> xx 为 ascii 码十六进制
-
0x02:Write UP
0x0201:index.phps
进入靶场,只有一段话,代码中啥提示也没有,盲猜有个页面叫index.php
,我们进行访问,显示的内容和一开始看到的也是一样的:
下面迎来本题第一个考点,我们可以通过在index.php
后添加一个s
,来查看 PHP 代码:
0x0202:urldecode 绕过
目标接收一个参数,名为 id,当 id 的内容为 admin 时,就会输出 Key,但是,当 id 内容为 admin 时,也会提前结束代码,那么问题就出在了urldecode
里。
urldecode
会对内容进行 url 解码,在进行 url 编码过程中,如果是 ASCII 码包含的内容,会被编码为%XX
,XX
是 16 进制 ASCII 值。
在浏览器中,会自动进行一次把非 ASCII 码进行转换的过程,但也只进行一次。也就是说,如果直接把 a 转换为%61
,浏览器会直接解码成a
,相当于传入的数据没有改变,所以我们这里需要将%
号也进行编码,即%25
。
最后传入的 Payload 如下:
评论记录:
回复评论: