攻防世界的php2

坐标:攻防世界https://adworld.xctf.org.cn/challenges/details?hash=cfde0863-d43b-40f2-94c9-fadcb1fea968_2&task_category_id=3

 一开始提示我们去认证这个网页:

因为一般网页都应该设有网页头部,所以我就试了试index.html和index.php,结果都不行 。

然后通过后台扫描工具发现除了index.php文件还有一个index.phps文件,了解到index.phps文件是记录php的源代码文件后访问index.phps得到代码如下表:

 发现代码不完善,打开网页源码发现完整代码:

下面就是最重要的代码分析的环节(因为博主是边做题边学php所以这对博主很困难的说)

         $_GET[id]表示我们要输入一个数给id,且根据"admin"===$_GET[id]知道我们赋的值会传递给admin,但根据3,4行如果我们使等号成立,那么代码不会往后执行,我们就无法得到key。

所以在第一大部分我们不能是admin=id

$_GET[id] = urldecode($_GET[id]);这个代码的意思使对id进行一次url编码,其中urldecode函数就是进行url编码的意思。

而我们都知道在访问网页时,网页会将我们输入的非法字符进行一次url编码,所以这个代码整体总共会进行两次url编码的过程。

在第二大段,代码要求我们经过两次url编码的admin=id则可以得到key。

总结

其实就是是我们输入的值进行两次url编码后变成admin。

知道原理后少做思考就可以知道id的值应该为a%2564min(不唯一)

输入后获得了flag

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值