CTFPlus-MISC每周练习:deeeeeeaaaaaadbeeeeeeeeeef、删库跑路、Signin、SilentResolver、DNS协议分析

admin 2026-07-14 05:09:00 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档为CTFPlus-MISC每周练习解题报告,涵盖五个题目:通过修复图片CRC校验获取flag;利用git恢复文件并逆向加密算法(凯撒、XOR、Base64)解密;使用SerpentECB模式解密加密文件;从DNS流量包中提取Base32编码数据并还原ZIP文件;分析DNS请求域名中的Base64编码获取flag。提供了具体操作步骤和脚本。 综合评分: 81 文章分类: CTF,渗透测试,漏洞分析,安全工具,其他


cover_image

CTFPlus-MISC每周练习:deeeeeeaaaaaadbeeeeeeeeeef、删库跑路、Sign in、Silent Resolver、DNS协议分析

原创

李北辰 李北辰

SPEEDCoding

2026年7月8日 12:00 山西

在小说阅读器读本章

去阅读

1. deeeeeeaaaaaadbeeeeeeeeeef

下载题目附件,使用010editor打开发现头部CRC校验失败,可能存在宽高隐写,使用随波逐流修复宽高,成功得到完整图片获得flag:key{TheISISPasswordIs}

2. 删库跑路

下载题目附件只有一个.git文件夹,使用命令git checkout HEAD — .恢复:

发现里面有一个py文件和一个output:

import&nbsp;base64flag =&nbsp;"不给你看,就不给你看(*`へ´*)"xor_key =&nbsp;0x66caser_shift =&nbsp;114514def&nbsp;caser_encrypt(text:&nbsp;str, shift:&nbsp;int) ->&nbsp;str:&nbsp; &nbsp; result = []&nbsp; &nbsp;&nbsp;for&nbsp;char&nbsp;in&nbsp;text:&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;'A'&nbsp;<= char <=&nbsp;'Z':&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(chr((ord(char) -&nbsp;ord('A') + shift) %&nbsp;26&nbsp;+&nbsp;ord('A')))&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;elif&nbsp;'a'&nbsp;<= char <=&nbsp;'z':&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(chr((ord(char) -&nbsp;ord('a') + shift) %&nbsp;26&nbsp;+&nbsp;ord('a')))&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(char)&nbsp; &nbsp;&nbsp;return&nbsp;''.join(result)def&nbsp;xor_bytes(data:&nbsp;bytes, key:&nbsp;int) ->&nbsp;bytes:&nbsp; &nbsp;&nbsp;return&nbsp;bytes(b ^ key&nbsp;for&nbsp;b&nbsp;in&nbsp;data)def&nbsp;main():&nbsp; &nbsp; step1_str = flag&nbsp; &nbsp; step2_str = caser_encrypt(step1_str, caser_shift)&nbsp; &nbsp; step3_bytes = xor_bytes(step2_str.encode(), xor_key)&nbsp; &nbsp; step4_encoded = base64.b64encode(step3_bytes).decode()&nbsp; &nbsp;&nbsp;print(f"Final Ciphertext:&nbsp;{step4_encoded}")&nbsp; &nbsp;&nbsp;with&nbsp;open("output",&nbsp;"w", encoding='ascii')&nbsp;as&nbsp;f:&nbsp; &nbsp; &nbsp; &nbsp; f.write(step4_encoded)&nbsp; &nbsp;&nbsp;print("\n ENCRYPTED SUCCESSFULLY")if&nbsp;__name__ ==&nbsp;"__main__":&nbsp; &nbsp; main()

密文在output文件里面,写一个python脚本解密即可:

import&nbsp;base64xor_key =&nbsp;0x66caser_shift =&nbsp;114514def&nbsp;caser_decrypt(input_str:str, shift:int) ->&nbsp;str:&nbsp; &nbsp; result = []&nbsp; &nbsp;&nbsp;for&nbsp;char&nbsp;in&nbsp;input_str:&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;'A'&nbsp;<= char <=&nbsp;'Z':&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(chr((ord(char) -&nbsp;ord('A') + shift) %&nbsp;26&nbsp;+&nbsp;ord('A')))&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;elif&nbsp;'a'&nbsp;<= char <=&nbsp;'z':&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(chr((ord(char) -&nbsp;ord('a') + shift) %&nbsp;26&nbsp;+&nbsp;ord('a')))&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(char)&nbsp; &nbsp;&nbsp;return&nbsp;''.join(result)def&nbsp;xor_decrypt(data:bytes, key:int) ->&nbsp;bytes:&nbsp; &nbsp;&nbsp;return&nbsp;bytes(b ^ key&nbsp;for&nbsp;b&nbsp;in&nbsp;data)step1 =&nbsp;"Vg43DREJHUgXFQI5EAkNEzkVBTkgCQQPAAkEDzklKQRXHwMFR0dHGw=="step2 = base64.b64decode(step1)step3 = xor_decrypt(step2, xor_key)step4 = caser_decrypt(step3.decode(),&nbsp;16)print(step4)

运行成功输出flag:

3. Sign in

下载题目附件,解压后查看,发现文件内容被加密,结合文件名:“Serpent.dat”,应该是serpent加密,需要密钥,用解压软件打开下载的附件,发现注释里面有一段base64编码:

base64解密一下,解密结果应该是密钥:

但是serpent加密的密钥最少也是16字节,这里只有9个字节,密钥可能需要填充,试了一下发现是右边零填充,没有给iv,应该是ecb模式,制作python解密脚本解密:

from pyserpent&nbsp;import&nbsp;Serpentwith&nbsp;open("E:\\桌面\\attachment\\Serpent.dat",&nbsp;"rb")&nbsp;as&nbsp;f:&nbsp; &nbsp; cipher&nbsp;=&nbsp;f.read()key_raw&nbsp;=&nbsp;b"SecretKey"key&nbsp;=&nbsp;key_raw.ljust(16, b"\0")serpent&nbsp;=&nbsp;Serpent(key)flag&nbsp;=&nbsp;serpent.decrypt(cipher)print(flag)

运行后成功解密出flag:

4. Silent Resolver

下载题目附件解压,是一个pcap流量包文件,wireshark打开后发现全是dns协议的流量:

里面有的dns协议请求的域名非常长,像是编码的:

把里面的很长的域名按照前面的序号拼接起来并转换成大写:

0001.wgczzoor4hic6nzn2a44nloyy4qk4jb4utekjorf37cc4ob4wd.a1b2c3d4.exfil.unictf.local0000.kbfqgbauaaaaacaajbsskxfwamzbcoaaaaadmaaaaaeaaaaamz.a1b2c3d4.exfil.unictf.local0002.klrsjqwy4n6pgcxiz5zvjthsrcpxgbgdddqpgzhc4mrofgxaka.a1b2c3d4.exfil.unictf.local0005.aqaaiagyaaaac6aaaaaaaa.a1b2c3d4.exfil.unictf.local0004.aaaaaaaaaaaaaaeaaeaaaaaamzwgczzoor4hiuclaudaaaaaaa.a1b2c3d4.exfil.unictf.local0003.cqjmaqefadcqaaaaaiabegkjk4wybteejyaaaaanqaaaaaqaaa.a1b2c3d4.exfil.unictf.localKBFQGBAUAAAAACAAJBSSKXFWAMZBCOAAAAADMAAAAAEAAAAAMZWGCZZOOR4HIC6NZN2A44NLOYY4QK4JB4UTEKJORF37CC4OB4WDKLRSJQWY4N6PGCXIZ5ZVJTHSRCPXGBGDDDQPGZHC4MROFGXAKACQJMAQEFADCQAAAAAIABEGKJK4WYBTEEJYAAAAANQAAAAAQAAAAAAAAAAAAAAAAAEAAEAAAAAAMZWGCZZOOR4HIUCLAUDAAAAAAAAQAAIAGYAAAAC6AAAAAAAA

这里可以每种编码都试一下,题目给的是dns流量包,用作dns的编码是base32,所以使用cyberchef进行解码:

发现可以得到一个zip文件,这里把解码结果导出成文件解压获得flag:

5. DNS协议分析

下载题目附件,是一个pcap流量包,根据题目提示分析dns协议,发现部分dns的请求域名前面带了编码信息:

把带编码信息的域名统计出来:

ZmxhZ3tlNj.i6ov08.dnslog.cnZmxhZ3.i6ov08.dnslog.cnYyYWMxNTRj.i6ov08.dnslog.cnYTM3NmUxYz.i6ov08.dnslog.cnAwMWVlOGJi.i6ov08.dnslog.cnZTgxMzE4Yn0K.i6ov08.dnslog.cn
ZmxhZ3tlNjYyYWMxNTRjYTM3NmUxYzAwMWVlOGJiZTgxMzE4Yn0K

base64解密得到flag:


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:SPEEDCoding 李北辰 李北辰《CTFPlus-MISC每周练习:deeeeeeaaaaaadbeeeeeeeeeef、删库跑路、Sign in、Silent Resolver、DNS协议分析》

评论:0   参与:  0