CTF-攻防世界-PHP2(PHP源码)

题目 

       

解题过程

扫了下端口和目录,没发现啥有用的信息。。。看了下提示,需要用到php源文件phps(咱之前没听说过)

访问:http://111.198.29.45:49502/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的参数,参数值必须为经过url编码后的admin

把admin做一次url编码:

http://111.198.29.45:49502/index.php?id=%61%64%6d%69%6e

 

没有成功。>_<。,wp里说的是url穿过去的时候本身就会做一次url编码,所以这里需要二次编码,好吧,把61%%64%6d%69%6e在做一次url编码,拿到flag。

 

知识点总结

1. php备份文件:后缀为php~或者index.php.bak

2. php的源代码文件:后缀为phps

3. ===:php的恒等运算符,和==有区别,从w3cschool截了张图:

posted @ 2020-03-06 16:37  Sally_Zhang  阅读(1328)  评论(0编辑  收藏  举报