文章总结: 文档为CTFPlus-MISC每周练习解题报告,涵盖五个题目:通过修复图片CRC校验获取flag;利用git恢复文件并逆向加密算法(凯撒、XOR、Base64)解密;使用SerpentECB模式解密加密文件;从DNS流量包中提取Base32编码数据并还原ZIP文件;分析DNS请求域名中的Base64编码获取flag。提供了具体操作步骤和脚本。 综合评分: 81 文章分类: CTF,渗透测试,漏洞分析,安全工具,其他
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 base64flag = "不给你看,就不给你看(*`へ´*)"xor_key = 0x66caser_shift = 114514def caser_encrypt(text: str, shift: int) -> str: result = [] for char in text: if 'A' <= char <= 'Z': result.append(chr((ord(char) - ord('A') + shift) % 26 + ord('A'))) elif 'a' <= char <= 'z': result.append(chr((ord(char) - ord('a') + shift) % 26 + ord('a'))) else: result.append(char) return ''.join(result)def xor_bytes(data: bytes, key: int) -> bytes: return bytes(b ^ key for b in data)def main(): step1_str = flag step2_str = caser_encrypt(step1_str, caser_shift) step3_bytes = xor_bytes(step2_str.encode(), xor_key) step4_encoded = base64.b64encode(step3_bytes).decode() print(f"Final Ciphertext: {step4_encoded}") with open("output", "w", encoding='ascii') as f: f.write(step4_encoded) print("\n ENCRYPTED SUCCESSFULLY")if __name__ == "__main__": main()
密文在output文件里面,写一个python脚本解密即可:
import base64xor_key = 0x66caser_shift = 114514def caser_decrypt(input_str:str, shift:int) -> str: result = [] for char in input_str: if 'A' <= char <= 'Z': result.append(chr((ord(char) - ord('A') + shift) % 26 + ord('A'))) elif 'a' <= char <= 'z': result.append(chr((ord(char) - ord('a') + shift) % 26 + ord('a'))) else: result.append(char) return ''.join(result)def xor_decrypt(data:bytes, key:int) -> bytes: return bytes(b ^ key for b in data)step1 = "Vg43DREJHUgXFQI5EAkNEzkVBTkgCQQPAAkEDzklKQRXHwMFR0dHGw=="step2 = base64.b64decode(step1)step3 = xor_decrypt(step2, xor_key)step4 = caser_decrypt(step3.decode(), 16)print(step4)
运行成功输出flag:
3. Sign in
下载题目附件,解压后查看,发现文件内容被加密,结合文件名:“Serpent.dat”,应该是serpent加密,需要密钥,用解压软件打开下载的附件,发现注释里面有一段base64编码:
base64解密一下,解密结果应该是密钥:
但是serpent加密的密钥最少也是16字节,这里只有9个字节,密钥可能需要填充,试了一下发现是右边零填充,没有给iv,应该是ecb模式,制作python解密脚本解密:
from pyserpent import Serpentwith open("E:\\桌面\\attachment\\Serpent.dat", "rb") as f: cipher = f.read()key_raw = b"SecretKey"key = key_raw.ljust(16, b"\0")serpent = Serpent(key)flag = 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协议分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论