CTF-WEB篇 攻防世界题目实战 每日一练

题目: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,后面明白了大致的意思:

  1.  首先,代码检查传递给脚本的GET参数 id 是否等于字符串 "admin",如果是,则输出 "

    not allowed!

    " 并退出脚本。

  2.  接着,代码对传递给脚本的GET参数 id 进行URL解码。

  3.  然后,代码再次检查 id 是否等于 "admin"。如果是,它会输出 "

    Access granted!

    " 以及一个密钥。

需要最终得到          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}