# web
# 简单题,但是沃玛
在 js 文件里看到 redrockctf 函数,flag 应该就在这里边
本来看到 "Uh,f1a9!" 的时候以为只有 f1a9 才是真正的 flag,还蒙了好久,直到出了 hint
ok,那手拼函数就完事了
第三部分分了两个,分别解码一下就出来了两个方法
写个 c 跑一下
显然第一个刚好是沃玛的 b 站 uid,再把三个拼接起来就得到 flag 了(后边的 #redr0cksrE2o22 也要加上)
redrock{https://space.bilibili.com/53456#redr0cksrE2o22} |
# 你是哪里的
直接打开,发现让我必须来自 https://redrock.team
那就用 burpsuite 加上 referer 栏
发过去得到 flag
redrock{we1c0me t0 redr0ck ctf} |
# 我新写的代码啊
进入网页发现看不出来啥
dirsearch 开扫,发现 bak 文件,下载
index.bak 文件如下
分析一下可知 if 判断的路劲如下:
看到两个判断是用 md5,两个是用文本匹配,那就看一下 md5 加密绕过构建 ABabc 五个内容
参考:PHP 中 MD5 加密的简单绕过及基于 MD5 加密的 SQL 注入_Landasika 的博客 - CSDN 博客
用 GET 方法试一下 md5 绕过是否成功
看来确实是可行的,但是文中写到 c 要用 POST 方法传
参考:get_post 攻防世界 使用 burpsuite 发送 GET、POST 请求_Zhuoqian_1 的博客 - CSDN 博客
构建一下 c 传过去,得到 flag
redrock{Php!sv2ryg004} |
# RemindYourHead
把网址在 burpsuite 中打开一下,翻出来 flag
(这 flag 每次都不一样,我比赛截的图和复现截的图不是同一个)
redrock{820a5bf5-4df9-4058-84a4-054af00b3b78} |
# Easy_upload
看到 hint,提示有两个 flag
看到是上传题,试一下一句话木马,但被拒绝了
那就试一下.htaccess 文件绕过
在 burp 中把.jpg 去掉,实现上传,再次上传一句话木马还是不行,那可能就在内容被检测了
参考:WEB 漏洞攻防 - 文件上传漏洞 - CTF - [极客大挑战 2019] Upload-1
制作一下变形马,然后上传成功了
打开蚁剑然后连接
上传根目录发现一个 flag 和 readflag,这个 flag 应该是真 flag
在终端里发现是一点权限没有
看一下 phpinfo
被禁用的函数有这么多
# 法一:蚁剑插件
那就用蚁剑里的插件绕过一下
由于 LD_PRELOAD 需要基于 php 连接才能绕过,所以我之前传的变形马是不能用的
所以用蚁剑的上传功能,在上传根目录上传简单的一句话木马
然后重新制作.antproxy.php
完成绕过了 disable_function,那就进入终端,输入 readflag 里提示的
tac ./flag |
得到 flag
redrock{2315jih452ghu542o5431giu5214huiog35431hp} |
# 法二:LD_PRELOAD 无插件版
详情 [web] Easy_upload - 飞书云文档 (feishu.cn)
# misc
# 签到
RT
redrock{020804} |
# 芝士雪豹与只因
hint 是一个 png,先丢到 binwalk 里看看有没有藏东西
有藏另一个图片文件,那就 foremost 提取出来
看到是个二维码,但是左上左下缺了数据,那就用 ps 补全,然后扫码得到了提示:密码是 qingshui
知道有密码,优先考虑一下 MP3Stego,得到了个 txt 文件
里边是 emoji,那就考虑一下 base100 解码
再把得到的用 base64 再解码得到 flag
redrock{Sn0w_le0pard_Shut_up} |
# bug:
最开始用的 mp3stego 可能是版本有问题,丢进去提示
OpenTable: could not find tables/huffdec | |
Check local directory './tables/' | |
Please check huffman table 'huffdec' |
在 github 上再下一个就解决了
# 啵啵的魔法药水
看到是 docker 题
# 法一:直接在 docker hub 里找
往下翻看到 flag
redrock{Wit-Sharpening_Potion.} |
其实这个方法是无奈之举,我 kali 安装的 podman,甚至没办法 pull 这个镜像
# 法二:
卸载 podman 然后安装 docker,pull 这个镜像
然后用 docker inspect 查看镜像内容
往下翻找到 flag
# 补:卸载 podman
# 你 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
但是这个是加密的,而不知道密码,那就猜测是否为伪加密
显然这个是真加密(试过都改 00,没啥用)
那就直接爆破密码,用 hash 爆破一下
参考:ctf 赛题 MISC 二维码_QJ_zjj 的博客 - CSDN 博客
解压出来是个 base64 解密之后的内容,解码
其实用 ARCHPR 更快,只不过自带的字典纯纯垃圾,换个字典就几秒钟的事
redrock{arey0u0k?} |
# 流量审计
看到 flag 点进去,看一下内容得到 flag
redrock{yyz_is_god} |
# reverse
# just_re_it
把 exe 文件丢进 010 Editor 看一下,只发现了个 fake(?)flag
把这个输进文件再看看
好吧,好像这个确实是 real flag
redrock{This_is_fake_flag} |
# 水水爱听歌
得到 pyc 文件,在 python 反编译 - 在线工具 (tool.lu) 反编译一下
看到 zzz 使用了 base64 编码,那就解码出来得到
She_bid_me_to_take_love_easy_as_the_leaves_grow_on_the_tree |
再看一下代码,发现 check 函数时判断输入的 flag 变量和 zzz 是否相同(?),那就直接输入 zzz(base64 解码之后的),得到 flag
redrock{044d7a01a972dc5882831e89676220c2dc3a3c142e16379a76a45680137a6b55} |
# 赛博丁真
把 exe 文件丢进 010 看一下,得到 flag
redrock{ggg_ding_zhen} |
# crypto
# 可惜我年轻无知
题目告诉我
yveypbl{kfu_h_kvhsq_mpfsq_dse_appjhgx_rhux_xvy_rpfje_spu_dqyvv} |
显然,yveypbl=》redrock,这是一一对应的,那就是考虑映射,但显然手推不可能,就用词频分析
网站:quipqiup - cryptoquip and cryptogram solver
得到第一个就是,把空格换成_就得到 flag
redrock{but_i_being_young_and_foolish_with_her_would_not_agree} |
# 来自红岩的密文 1
一看就觉得是 Unicode 编码,解码得到 flag
redrock{Welc0me_T0_The_CTF_0f_redR0ck!!!} |