[CTFPWN]从0到0.00001PWN⼊门超级详细
Pwn从0到0.00001
Pwn的简介
Pwn是CTF⽅向中的⼀种,主要是利⽤⼆进制漏洞从⽽获得getShell(提权),即获得对⽅系统权限,从⽽控制对⽅电脑。
Pwn是⼀个⿊客语法的俚语词,⾃"own"这个字引申出来的,这个词的含意在于,玩家在整个游戏对战中处在胜利的优势,或是说明竞争对⼿处在完全惨败的 情形下,这个词习惯上在⽹络游戏⽂化主要⽤于嘲笑竞争对⼿在整个游戏对战中已经完全被击败(例如:“You just got pwned!”)。
名词储备:writeup(指CTF中解题思路过程的⽂档),exp(exploit,指漏洞利⽤程序),栈,汇编,Linux等
Pwn的理论⼯具准备
初学
⼯具
1. Python
2.x ⾄于为什么不⽤python3后⾯会讲到
学编程先学什么再学什么2. Linux Windows⽤户推荐wsl2或虚拟机,MacOS不太清楚
python入门教程 非常详细 pdf3. IDA pro ⼀个逆向分析⼯具
4. ⼀个漏洞利⽤框架⼯具
position用法搭配5. ELF保护分析⼯具
储备知识
1. C语⾔
2. 基础Python2语⾔,及库的⽤法
3. 源/伪代码阅读和BUG漏洞寻能⼒
4. 基础Linux命令
以上可以进⾏简单的栈溢出的学习
⼊门
⼯具
1. gdb动态调试插件
2. 集成libc查⼯具
3. ⼀句话提权指令搜索⼯具
4. rop指令流搜索
储备知识
1. C/C++语⾔
2. 基础Python2语⾔,及库的⽤法
3. ELF⽂件结构
4. 深度理解计算机系统(CSAPP)初步
加上以上的可以更⽅便的学习进阶栈溢出、堆利⽤等知识
Pwn的学习
初学-从Writeup中学习
⽹站推荐
1. 站内内置writeup,但最近pwn环境⽆法分发
2. pwn环境可以分发,但需要⾃⾏查writeup,题量少
3. pwn环境可以分发,有N1BOOK配套习题(但好像环境坏了?),⽐赛真题,题量⼤,但需要⾃⾏查writeup ⼊门-从⽐赛中学习
参加⽐赛,利⽤⽐赛同时练习技术,这样可以更好的抓住⽐赛的中pwn的热点,也可以培养随机应变的能⼒。Pwn的环境准备
由于没有尝试过MacOS上pwn
所以只有Windows的教程
Windows
1. 安装WSL2(⼦系统)
2. 在WSL中安装Python2
3. 在WSL中安装pwntools等库
4. 在WSL中安装checksec
5. 选择⼀个你喜欢的IDE,强推
在Vscode中配置Pwn中环境
1. 安装Remote - WSL插件
即可可切换成Ubuntu终端
教师节手抄报边框简单又漂亮
在Vscode中Pwn
1.右键-在Vscode中打开⽂件夹
2.左下⾓点击><;旋转Reopen Folder in WSL (这个尝试过编写exp时没有代码提⽰,可以在windows上先装python2和pwntools,在windows上编写exp,然后再Linux上运⾏,即跳过此步骤)
3.新建⼀个exp.py
4.开始书写你的脚本
Pwntools的学习
简易快速⼊门
导⼊Pwntools
from pwn import *
链接
r = remote("⽬标地址str类型", ⽬标端⼝int类型)与服务器交互
r = process("⽬标程序位置")与本地程序交互
构造playload之打包
p64(int)将int类型打包成64位存储
p32(int)将int类型打包成32位存储
发送
r.sendline(playload)发送playload为⼀⾏(⾃动在尾部加上\n)
接收
r.interactive()⼀般在末尾都要加
Pwn的做题流程
1. 使⽤checksec检查ELF⽂件保护开启的状态
2. IDApro逆向分析程序漏洞(逻辑复杂的可以使⽤动态调试)
3. 编写python的exp脚本进⾏攻击
4. (若攻击不成功)进⾏GDB动态调试,查原因smart行动计划
5. (若攻击成功)获取flag,编写Writeup
注:此做题流程并不完全概括,需要具体情况具体分析Pwn的简单例⼦
题⽬来源
checksec
64位,导⼊IDA 64,到main函数,按F5或是Tab
windows update在哪
分析函数及漏洞
main函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。