2020.3.30 xctf(PHP2)②
程序员文章站
2022-05-15 21:37:44
...
⑴我们发现有个index.php,我们访问一下,没有结果…
那么我们看看能否看看该网页php地源码,这里用到了.phps.phps后缀释义: phps文件就是php的源代码文件。 通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替
于是我们访问index.phps,看到下图所示:
ctrl+U看到完整php代码是:
<?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>";
}
?>
Can you anthenticate to this website?
==:表示只要值相等
===:要求类型也要相同
我们这里就需要绕过第一个的类型也相同。
注意:浏览器在上传数据时,会对参数值进行一次解码(与php代码无关,是浏览器自身会解码一次)
且注意到代码中在绕过第一次后,在第二次比较前,会先进行一次解码,然后再比较。
我们这里只要将admin中的一个字母进行一次编码以后得到的%再编码一次就可以了,不用将所有的都进行编码。
示范一下a是怎么编码的:a先转ascii 97,97 再转成16进制 61,并在前加上%.
第二次对%编码:将%转ascii,再转16进制,并再前加%。即为%25
上一篇: 计算一个Java对象占用字节数的方法
下一篇: 2020.4.6 xctf(web2)①