# web

# 简单题,但是沃玛

在 js 文件里看到 redrockctf 函数,flag 应该就在这里边

1

本来看到 "Uh,f1a9!" 的时候以为只有 f1a9 才是真正的 flag,还蒙了好久,直到出了 hint

0

ok,那手拼函数就完事了

2

第三部分分了两个,分别解码一下就出来了两个方法

3

4

写个 c 跑一下

5

显然第一个刚好是沃玛的 b 站 uid,再把三个拼接起来就得到 flag 了(后边的 #redr0cksrE2o22 也要加上)

redrock{https://space.bilibili.com/53456#redr0cksrE2o22}

# 你是哪里的

1

直接打开,发现让我必须来自 https://redrock.team

那就用 burpsuite 加上 referer 栏

2

发过去得到 flag

3

redrock{we1c0me t0 redr0ck ctf}

# 我新写的代码啊

进入网页发现看不出来啥

dirsearch 开扫,发现 bak 文件,下载

0

index.bak 文件如下

1

分析一下可知 if 判断的路劲如下:

路径

看到两个判断是用 md5,两个是用文本匹配,那就看一下 md5 加密绕过构建 ABabc 五个内容

参考:PHP 中 MD5 加密的简单绕过及基于 MD5 加密的 SQL 注入_Landasika 的博客 - CSDN 博客

用 GET 方法试一下 md5 绕过是否成功

2

看来确实是可行的,但是文中写到 c 要用 POST 方法传

参考:get_post 攻防世界 使用 burpsuite 发送 GET、POST 请求_Zhuoqian_1 的博客 - CSDN 博客

构建一下 c 传过去,得到 flag

3

redrock{Php!sv2ryg004}

# RemindYourHead

把网址在 burpsuite 中打开一下,翻出来 flag

(这 flag 每次都不一样,我比赛截的图和复现截的图不是同一个)

1

redrock{820a5bf5-4df9-4058-84a4-054af00b3b78}

# Easy_upload

看到 hint,提示有两个 flag

0

看到是上传题,试一下一句话木马,但被拒绝了

1

那就试一下.htaccess 文件绕过

2

2-1

在 burp 中把.jpg 去掉,实现上传,再次上传一句话木马还是不行,那可能就在内容被检测了

参考:WEB 漏洞攻防 - 文件上传漏洞 - CTF - [极客大挑战 2019] Upload-1

制作一下变形马,然后上传成功了

3

打开蚁剑然后连接

4

上传根目录发现一个 flag 和 readflag,这个 flag 应该是真 flag

readflag

在终端里发现是一点权限没有

5

看一下 phpinfo

6

被禁用的函数有这么多

7

# 法一:蚁剑插件

那就用蚁剑里的插件绕过一下

8

由于 LD_PRELOAD 需要基于 php 连接才能绕过,所以我之前传的变形马是不能用

所以用蚁剑的上传功能,在上传根目录上传简单的一句话木马

12

然后重新制作.antproxy.php

15

完成绕过了 disable_function,那就进入终端,输入 readflag 里提示的

tac ./flag

得到 flag

17

redrock{2315jih452ghu542o5431giu5214huiog35431hp}

# 法二:LD_PRELOAD 无插件版

详情 [web] Easy_upload - 飞书云文档 (feishu.cn)

# misc

# 签到

RT

0

redrock{020804}

# 芝士雪豹与只因

hint 是一个 png,先丢到 binwalk 里看看有没有藏东西

0

有藏另一个图片文件,那就 foremost 提取出来

1

看到是个二维码,但是左上左下缺了数据,那就用 ps 补全,然后扫码得到了提示:密码是 qingshui

2

知道有密码,优先考虑一下 MP3Stego,得到了个 txt 文件

3

里边是 emoji,那就考虑一下 base100 解码

4

再把得到的用 base64 再解码得到 flag

5

redrock{Sn0w_le0pard_Shut_up}

# bug:

最开始用的 mp3stego 可能是版本有问题,丢进去提示

OpenTable: could not find tables/huffdec 
Check local directory './tables/' 
Please check huffman table 'huffdec'

在 github 上再下一个就解决了

# 啵啵的魔法药水

看到是 docker 题

0

# 法一:直接在 docker hub 里找

1

往下翻看到 flag

2

redrock{Wit-Sharpening_Potion.}

其实这个方法是无奈之举,我 kali 安装的 podman,甚至没办法 pull 这个镜像

# 法二:

卸载 podman 然后安装 docker,pull 这个镜像

0-6

然后用 docker inspect 查看镜像内容

2-1

往下翻找到 flag

2-2

# 补:卸载 podman

0-1

0-2

0-3

0-4

0-5

# 你 TM 故意压缩 flag 是吧?

显然,这是个有 114514 层的多层压缩,那就写个循环解压脚本

参考:递归解压 zip 文件_brightendavid 的博客 - CSDN 博客

#coding=gbk
import os
import zipfile
dir = "C:\\Users\\*****\\Desktop\\work\\ctf\\unzip\\"
n = 0
s2 = ""
def jieya():
        i = "14514.zip"
        for x in range(114514):
            ss = i[:i.find(".")]
            print(i)
            zpf = zipfile.ZipFile(dir + ss + ".zip")
            list = zpf.namelist()  # 得到压缩包里所有文件
            for f in list:
                zpf.extract(f, dir, ss.encode('utf-8'))  # 循环解压文件到指定目录
            print(ss + "done" + str(f))
            i = str(f)
jieya()

这样解压 114514 层之后,得到了最后一层 yyz

0

1

但是这个是加密的,而不知道密码,那就猜测是否为伪加密

参考:CTF 之压缩包处理 (mchz.com.cn)

显然这个是真加密(试过都改 00,没啥用)

2

那就直接爆破密码,用 hash 爆破一下

参考:ctf 赛题 MISC 二维码_QJ_zjj 的博客 - CSDN 博客

3

解压出来是个 base64 解密之后的内容,解码

4

其实用 ARCHPR 更快,只不过自带的字典纯纯垃圾,换个字典就几秒钟的事

5

redrock{arey0u0k?}

# 流量审计

看到 flag 点进去,看一下内容得到 flag

1

redrock{yyz_is_god}

# reverse

# just_re_it

把 exe 文件丢进 010 Editor 看一下,只发现了个 fake(?)flag

0

把这个输进文件再看看

1

好吧,好像这个确实是 real flag

redrock{This_is_fake_flag}

# 水水爱听歌

得到 pyc 文件,在 python 反编译 - 在线工具 (tool.lu) 反编译一下

0

看到 zzz 使用了 base64 编码,那就解码出来得到

She_bid_me_to_take_love_easy_as_the_leaves_grow_on_the_tree

再看一下代码,发现 check 函数时判断输入的 flag 变量和 zzz 是否相同(?),那就直接输入 zzz(base64 解码之后的),得到 flag

1

redrock{044d7a01a972dc5882831e89676220c2dc3a3c142e16379a76a45680137a6b55}

# 赛博丁真

把 exe 文件丢进 010 看一下,得到 flag

0

redrock{ggg_ding_zhen}

# crypto

# 可惜我年轻无知

题目告诉我

yveypbl{kfu_h_kvhsq_mpfsq_dse_appjhgx_rhux_xvy_rpfje_spu_dqyvv}

显然,yveypbl=》redrock,这是一一对应的,那就是考虑映射,但显然手推不可能,就用词频分析

网站:quipqiup - cryptoquip and cryptogram solver

0

得到第一个就是,把空格换成_就得到 flag

redrock{but_i_being_young_and_foolish_with_her_would_not_agree}

# 来自红岩的密文 1

0

一看就觉得是 Unicode 编码,解码得到 flag

1

redrock{Welc0me_T0_The_CTF_0f_redR0ck!!!}