涉及URL二次编码的CTF题目

萌新的线索发现之旅

 

首先打开连接发现

这个想必大家都能找到线索吧,没错,在url后面加上.txt  会发现进入到一个有php代码的网页

作为一个萌新表示这里花费了我大量的时间去理解这段代码,给大家说一下思路,这里很显然就是解题的关键了,我们可以很明显的看到hackerDJ是GET[id]里id的值,也就是id=hackerDJ  代码的意思大概就是如果输入正确的id的话就可以得到flag的值了,所以我们先尝试在后面加上id=hackerDJ

得到的返回是不允许,说明我们的思路是正确的,只有有哪个地方出错了(当然出题人不会让你这么简单就解开了啊,特别提示:php语法在url里输入是要在php后面加上?才可以赋值,对于没有学习过php的我来说走了不是冤枉路=-=)

然后我们再回到之前那段php代码,可以发现一句话

不懂这段代码怎么办,很简单,复制到百度,可以发现这是url解码后得到这个id的值,也就是说我们输入的id值是要进行url编码的(本人当初在网上找了大量的url编码工具,最后发现出来的结果都是hackerDJ,根本没有变化,所以我用的是御剑内置的编码转换工具)

转换后我们再尝试吧编码后的值输入进去,发现还是不允许

然后我们再仔细看地址栏会发现我们明明是输入的id=%68%61%63%6B%65%72%44%4A  却变成了id=hackerDJ

这说明浏览器自动进行了url解码,导致我们的编码值不能输入,于是我们大胆尝试,对id进行再次编码(因为我们要输入的是id的编码值,但是浏览器会自动进行解码,那么设想我们对编码进行再编码的话那浏览器解码后是不是就是我们要输入的编码值了)抱着这个想法开始对编码进行编码,得到

再把这段编码输入url

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值