欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020.3.30 xctf(PHP2)②

程序员文章站 2022-05-15 21:37:44
...

2020.3.30 xctf(PHP2)②⑴我们发现有个index.php,我们访问一下,没有结果…

那么我们看看能否看看该网页php地源码,这里用到了.phps
.phps后缀释义: phps文件就是php的源代码文件。 通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替

于是我们访问index.phps,看到下图所示:
2020.3.30 xctf(PHP2)②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中的一个字母进行一次编码以后得到的%再编码一次就可以了,不用将所有的都进行编码。
2020.3.30 xctf(PHP2)②示范一下a是怎么编码的:a先转ascii 9797 再转成16进制 61,并在前加上%.
第二次对%编码:将%转ascii,再转16进制,并再前加%。即为%25
2020.3.30 xctf(PHP2)②

相关标签: web安全