攻防世界-php2

打开题目一看,问我Can you anthenticate to this website?

我们先掏出来御剑扫它一下,

 打开一看,发现源码泄露,我们打开网页f12查看源码

 这里让我们get方式传入一个id值需要绕过,先看第一个"admin"===$_get[id]  需要为假,那我们将'a'   urldecode一次就不等于了绕过了它

接着我们看到下面将我们传入的参数再一次urldecode一次,还要求编码过后等于admin,于是我们

构造payload: ?id=%2561dmin

提交url时,它会自动urldecode一回,%25就成为了%,然后进入二次绕过时,%61就转成了a,此时我们就拿到了我们想要的a了

第一次它会将非ascii码,进行一次urldecode一回

进行第一次比较:

if("admin"==="%61dmin")

代码中会对它再进行一次urldecode

urldecode("%61dmin")        //admin

  

然后就绕过了二次编码,获得了我们的flag

原文地址:https://www.cnblogs.com/junlebao/p/13866805.html