PHP2
输入index.phps,有源码泄露
如下:
<?php
if("admin"===$_GET[id]) {
echo("<p>not allowed!</p>");
exit();
}
$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{
echo "<p>Access granted!</p>";
echo "<p>Key: xxxxxxx </p>";
}
?>
很好读懂,两个判断,第一个判断的id为admin时,显示not allowed
第二个判断,id经过url解码后,如果等于admin,则输出我们想要的key
那么将admin进行中的任意位字母进行两次url编码即可绕过,如全部编码两次为%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65,如下图
为什么要url编码两次呢,这是因为,在浏览器地址栏的时候,默认会进行一次url解码,比如你输入%61,地址栏会直接显示为a,就是进行了一次解码,在源码中还有一次解码操作,所以要进行两次编码,说来也巧,如果不进行两次编码也无法绕过源码中的第一个判断
最后一句:不要在网上搜什么url在线编码,在线编码工具了,都是傻逼,我说的,耶稣来了,我也这么说,经历过的人都懂,我是乖乖的去用burp进行的url编码,此外还可以利用java,C,C艹去在线运行代码,生成url编码,也是一种思路,不过我还是觉得打开burp方便,这里给大家推荐一个在线工具url编码虽然一样傻逼,但是有个在线运行代码(参考效果),还可以嵌入博客,也还不错
得到flag:cyberpeace{4cbcf443bbee22a1f078513480618ac9}
作者:荒
除特别声明为原创博文外,均可转载,也欢迎转载,未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利,谢谢您的配合。