SQCTF万文题解
字数 2343 2025-08-30 06:50:35
SQCTF 题解与知识点教学文档
1. MISC(杂项)
-
工具与技巧:
- SilentEye:用于隐写解密。
- 爆破PNG高度:修改PNG文件高度以显示隐藏内容。
- CQR扫描:直接扫描二维码获取信息。
- Audacity:分析音频文件,提取隐藏信息(如频谱图)。
- Steganography工具:在线工具如
https://www.a-tools.net/Tool.php?Id=100可解密隐写数据。 - 文件尾隐藏数据:手动提取文件尾部附加的数据(如压缩包、Base64编码内容)。
- 社工技巧:通过文件名、地图评论等线索获取Flag。
-
典型题目:
- 王者荣耀ID搜索:通过游戏ID关联百度地图评论获取Flag。
- 公众号互动:关注公众号发送特定消息获取Flag。
- FFT/IFFT处理:视频帧通过傅里叶变换隐藏信息,需逆向恢复原始数据。
- Piet语言:使用
npiet工具直接解析图像程序。
2. Reverse(逆向工程)
-
常见操作:
- Python解包与反编译:使用
uncompyle6或pycdc反编译高版本Python的.pyc文件。 - Base64解码:解密编码后的字符串(如
NWVkMmJlNDUtMmU4My00OGQyLWI2MzEtYzA4OGU1MWVlOTY0)。 - 迷宫求解:BFS算法寻找最短路径(如
sqctf{ddsssdssaasssddddddwd})。 - TEA/XXTEA解密:处理自定义加密逻辑,需逆向密钥和算法。
- AES-CBC解密:固定IV和密钥,Base64解码后分离IV与密文。
- Python解包与反编译:使用
-
典型题目:
- ezRe:Base64解码直接获取Flag。
- 慕然回首:逆向迷宫生成逻辑,BFS求解路径。
- 圣人当仁不让:逆向VM执行逻辑,逐字节变换(
output_byte = (input_byte ^ 0xAA) + 3)。 - ChaCha20解密:通过已知密钥和Nonce生成密钥流,XOR解密密文。
3. Crypto(密码学)
-
编码与加密:
- Base家族:Base91 -> Base64 -> Base62 -> Base16 多层解码。
- Rabbit加密:密钥为
233(B站梗)。 - 阴阳怪气编码:特殊符号解码(如
SQCTF{xm!tql!xm!})。 - 核心价值观编码:多次解码获取Flag。
- RSA攻击:中国剩余定理(CRT)广播攻击、模数分解。
- 椭圆曲线加密(ECC):暴力破解离散对数问题(如
secretKey=5720914)。
-
典型题目:
- 小白兔白又白:多层Base解码后Rabbit解密。
- 失落矿洞:ECC ElGamal解密,计算
x + y。 - 杰弗逊圆盘:通过密钥排列密码盘,爆破明文。
4. Web(Web安全)
-
漏洞利用:
- 目录穿越:
../读取敏感文件(如..flag)。 - 文件下载:
/DownloadServlet?filename=WEB-INF/web.xml读取配置。 - 日志文件包含:
?look=file:///var/log/nginx/access.log注入PHP代码。 - SSTI(模板注入):使用
fenjing工具绕过过滤。 - 反序列化逃逸:构造Payload覆盖属性(如
escaping题目)。 - 弱密钥Session伪造:Flask的
secret_key已知时伪造Session。
- 目录穿越:
-
典型题目:
- Upload_Level1/2:修改文件后缀绕过前端验证(如
.jpg.php)。 - 唯一:模糊测试参数,SSTI注入。
- 自私的小s:PHP反序列化私有属性逃逸,执行任意代码。
- pickle反序列化:Base64解码后执行Python pickle载荷。
- Upload_Level1/2:修改文件后缀绕过前端验证(如
5. PWN(二进制利用)
-
漏洞类型:
- 栈溢出:覆盖返回地址跳转后门函数(如
sqctf{f6faa9df9a684cacb74b235c9cba4652})。 - SROP(Sigreturn):构造
SigreturnFrame执行execve("/bin/sh")。 - Shellcode注入:写入RWX内存并跳转执行(如
mov rdi, 0x68732f2f6e69622f)。 - 格式化字符串:泄露栈数据或覆盖地址。
- 栈溢出:覆盖返回地址跳转后门函数(如
-
典型题目:
- 当时只道是寻常:SROP利用系统调用。
- 赌书消得泼茶香:Base64解码后栈溢出,ROP链跳转后门。
- 萧萧黄叶闭疏窗:Shellcode写入可执行内存并触发。
6. 通用技巧
-
工具链:
- FFmpeg:视频帧提取与合成。
- 010 Editor:分析文件头尾异常。
- sqlmap:自动化SQL注入。
- jadx:APK反编译。
- flask-unsign:伪造Flask Session。
-
编码与解码:
- Hex/Binary转换:
7f1f...f2d1转二进制。 - 异或(XOR):
(input_byte ^ 0xAA) + 3。 - PKCS#7填充:AES-CBC模式下的填充处理。
- Hex/Binary转换:
总结
- 关键点:逆向分析需结合动态调试(如GDB)、静态分析(IDA/Ghidra);Web漏洞需关注输入点过滤与上下文逻辑;密码学题目需熟悉编码链和数学攻击(如CRT)。
- Flag格式:注意大小写(如
SQCTF或sqctf)和特殊字符(%3d需URL解码)。 - 练习建议:从简单题目(如Base解码、文件隐写)过渡到复杂场景(SROP、ECC解密)。