boat1204/CTF-Challenges
GitHub: boat1204/CTF-Challenges
一个涵盖二进制利用、逆向工程和编程三大方向的 CTF 挑战赛练习题解知识库,帮助安全学习者系统掌握竞赛解题方法。
Stars: 0 | Forks: 0
# CTF 挑战赛
#### 1. 确定类别
主要有三个类别:
1. Binary Exploitation
2. Reverse Engineering
3. 编程
每个类别都会有不同类型的问题。对于 Binary Exploitation,我们将看到诸如 ret2win、ret2libc、canary、PIE、GOT overwrites、shellcode 和基本堆溢出利用等问题。对于 Reverse Engineering,能够使用 Ghidra 反汇编二进制文件将是关键。对于编程,了解数据结构和算法将有助于为我们遇到的任何问题找到有效的解决方案。
#### 2. 了解每个问题的切入点
对于 Binary Exploitation 问题,应采取以下步骤:
1. 静态分析
- 运行二进制文件
- 运行 ```checksec``` 和 ```file```。
这样做将为我们提供有关启用了哪些保护措施以及二进制文件是否会被剥离的信息。在筛查阶段,我们将始终处理 x86_64 架构,但无论如何我们都可以检查一下。需要注意的几点:
```
NX enabled: no shellcode, probably ROP
full RELRO: no GOT overwrite
canary: must check for overwrite when doing buffer overflow
```
2. 识别漏洞
在 Ghidra 中打开二进制文件并查看反编译代码。这将帮助我们识别任何漏洞,例如 buffer overflow 或格式化字符串漏洞。由此,我们可以确定后续的操作方案。
我们也可以在 ```gdb``` 中查看它,以识别可能需要用到的任何函数。如果存在 ```system()``` 函数,我们可能需要考虑使用 ret2libc 攻击。
标签:GDB, Ghidra, Write-up, 二进制漏洞利用, 云资产清单, 逆向工程