[ACTF2020 新生赛]BackupFile

使用dirsearch扫描:

  dirsearch -u http://b31cefa6-24d4-4f14-82c3-0fdba166cecf.node5.buuoj.cn:81/ -e bak -t 1 -d 1 -o ./reports/buuoj.txt

扫描结果为:

文件扫描得到命令index.php.bak

保存之后,把.bak后缀去掉。打开文件得到代码,也可以直接用记事本打开

  <?php
  include_once "flag.php";
  
  if(isset($_GET['key'])) {
      $key = $_GET['key'];
      if(!is_numeric($key)) {
          exit("Just num!");
      }
      $key = intval($key);
      $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
      if($key == $str) {
          echo $flag;
      }
  }
  else {
      echo "Try to find out source file!";
  }

通过审计代码发现,key至接收数字类型,且会把数据转为整型格式,最后和123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3字符串进行弱相等(==)比较。
==为弱相等,即当整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123admin456进行==比较时。则b只会截取前面的整数部分。即b转化成123。
所以只要输入?key=123即可。

posted @ 2024-11-20 21:50  一只本本  阅读(4)  评论(0编辑  收藏  举报