IoT安全入门02

第二章 PWN基础

0x01 PWN入门介绍&&PWN环境搭建

1. PWN

1.1 PWN?

Pwn,是一个骇客语法的俚语词,自”own”这个词引申出来的,这个词的含意在于,玩家在整个游戏对战中处在胜利的优势,或是说明竞争对手处在完全惨败的情况下,这个词习惯上在网络游戏文化主要用于嘲笑竞争对手在整个游戏对战中已经完全被击败。

image-20220817204347866

1.2 Pwn

Pwn一般指二进制上的漏洞。

image-20220817204604805

2. 常见PWN漏洞

image-20220817204842613

3. PWN基础讲解

3.1 Linux内存布局

X86布局:

image-20220817205505774

Kernel space内核空间:管理内存,外设,进程等。

Stack 栈空间:

Memory Mapping Segment:内存映射

3.2 经典栈溢出

image-20220817210022940

3.3 ROP

image-20220817212241011

4. PWN环境搭建

4.1 Pwn环境搭建

!!!Note:16.04版本的Ubuntu按照下面的指令安装pwndbg时大概率会报错,因为Ubuntu16.04的版本现在已经有点低了,建议换高版本的Ubuntu,如果实在想用16.04的话,建议找一个别人装好的虚拟机,自己折腾真的太费时间了。我用的是giantbranch师傅装好的虚拟机,仓库地址如下:https://github.com/giantbranch/pwn-env-init

image-20220817213711297

image-20220817214307340

image-20220817214911061

我是打算重新整理一个环境搭建的笔记,忙完这段时间再说,先挖个坑。

0x02 PWN常见工具详解

PS:这部分跟我在看雪学习PWN入门的课程感觉有些重复了,本来没想写这一张,但是强迫症,还是按照课程目录给写上了,无视就好,hhh

1. GDB

参考看雪pwn入门

2. pwntools

参考看学pwn入门和其他的一些博客

0x03 MIPS堆栈溢出

参考ctfwiki pwn的MIPS部分

0x04 ARM堆栈溢出

参考ctfwiki pwn的ARM部分