在完成这一道题之前,我们需要先知道一个最基本的知识点,那就是url编码:URL 之所以需要编码,是因为 URL 中的某些字符会引起歧义,比如 URL 查询参数中包含了”&”或者”%”就会造成服务器解析错误;再比如,URL 的编码格式采用的是 ASCII 码而非 Unicode 格式,这表明 URL 中不允许包含任何非 ASCII 字符(比如中文),否则就会造成 URL 解析错误。
不能编码的还有:[ ] < > " " { } | \ ^ * · ‘ ’
对于不能编码的字符,我们应该将其弄成%16进制的ASCII编码形式,我们可以对照ASCII表进行也可以在网上寻找在线工具亦或者自己编写一个程序来进行转码。
对于这一道题,我们需要先用一些后台扫描程序,看一下它有哪一些文件,通过扫描,我们知道了它有index.php和index.phps,我们依次读取这两个文件,发现index.php没有任何反应,但是index.phps我们就可以知道这一个网站的源代码,那么我们通过阅读这一个源代码,我们可以的看出来,这里面有与用户名和密码相关的程序,并且,当id(GET形式传递参数)这个值为admin的时候,会显示出用户名和密码,那么我们就先把admin这一个编码为ASCII码,再将得到的编码放在index.php这一个路径后面,以index.php?id=(admin的编码)的形式传输进去,就可以得到这个题的flag了。