923 pwn学习

capoo / 2024-09-24 / 原文

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进行攻击远程服务器

  1. 将二进制程序拖进Linux虚拟机
  2. 利用file命令去了解它是怎样一个格式,来决定用什么IDA打开
  3. 用32bit或64bit的IDA Pro反汇编器)来分析二进制的代码中究竟有什么内容,IDA可以将二进制文件的机器码转换为汇编代码、C语言代码(C语言是基础中的基础
  4. 根据IDA还原的C语言源代码(不是和原本编写者写得一模一样的,但是能实现的功能是一样的),寻找结构漏洞,并且利用漏洞
  5. 根据漏洞开始写exp(攻击脚本

这是一个exp的示例
  1. 使用python命令运行该脚本,最终获取服务器控制权
  2. cat flag获得flag拿分