923 pwn学习
9/23 pwn学习
前言
今天参加了NewStart竞赛,一共四道题,通过各种查资料做出了两道题(第一次体会到pwn题给人的无力感),做到第三题的时候发现已经不在我能力范围内了,exp写出来也无法攻击成功,在下午四点时只好作罢
不过让我自豪的是拿到了第二题的三血,也是pwn生涯的第一个高光时刻了(太容易满足了)
于是我打算从基础知识入手开始学pwn,参考XMCVE 2020 CTF Pwn入门课程这个视频与书籍《CTF竞赛权威指南-pwn篇》进行学习
我将记录下学习的内容,方便后面进行知识的回顾
少年终将在pwn道路上闯出一番天地
不希望做一个玩也玩不好,学也学不好的人
2024/9/23
pwn的基本流程
pwn就是二进制漏洞挖掘与利用
1. 什么是二进制程序
就是可执行文件,在window的格式是.exe,在Linux中的格式是.elf
主办方出题一般会给出一个二进制文件,并且在远程服务器的某个端口挂上二进制服务
2. pwn的一般攻击流程
在远程服务器挂着一个二进制服务,利用主办方提供的同样的二进制程序,挖掘漏洞,并且编写exp进行攻击远程服务器
- 将二进制程序拖进Linux虚拟机
- 利用
file
命令去了解它是怎样一个格式,来决定用什么IDA打开 - 用32bit或64bit的IDA Pro(反汇编器)来分析二进制的代码中究竟有什么内容,IDA可以将二进制文件的机器码转换为汇编代码、C语言代码(C语言是基础中的基础)
- 根据IDA还原的C语言源代码(不是和原本编写者写得一模一样的,但是能实现的功能是一样的),寻找结构漏洞,并且利用漏洞
- 根据漏洞开始写exp(攻击脚本)
- 使用
python
命令运行该脚本,最终获取服务器控制权 cat flag
获得flag拿分