pwn入门
本文最后更新于:2024年6月2日 晚上
pwn基本概念
名词 | 概念 |
---|---|
POC | Proof of Concep,用于证明漏洞存在或者验证可行性 |
Payload | 有效载荷 |
Shellcode | 用于得到shell的一段代码 |
EXP | Exploit,利用漏洞进行攻击的程序 |
Glibc | GNU C Library |
ROP | Return-Oriented Programming |
UAF | Use After Free |
DEP | Data Execution Prevention |
ASLR | Address Space Layout Randomization |
GOT | Global Offset Table |
工具
pwndbg
pwndbg,使gdb更友好的插件
安装
1 |
|
可能会遇到网络问题,需要正确配置git、pip、命令行代理
linux下好像配置了git代理也没用,会出现奇怪报错,最终使用proxychains ./setup搞定
也或许可以考虑下载 deb 文件
1 |
|
checksec
checksec,用于检查文件的保护机制与基本信息
1 |
|
字段 | 说明 |
---|---|
Arch | x64架构,64位,小端序 |
RELRO | 设置符号重定向表格为只读或在程序启动时就解析并绑定所有动态符号,从而减少对GOT(Global Offset Table)攻击 |
Stack CANARY | gcc -fno-stack-protector禁用,gcc -fstack-protector 启用 |
NX | 堆栈不可执行保护,不能在栈上执行shellcode,编译选项: 关闭 -z execstack 开启-z noexecstack 。DEP(数据执行保护)的一种 |
PIE(ASLR) | 地址随机化。randomize_va_space 0 - 表示关闭进程地址空间随机化。 1 - 表示将mmap的基址,stack和vdso页面随机化。 2 - 表示在1的基础上增加堆(heap)的随机化。 |
pwntools
pwntools,一个python库
ROPgadget
ROPgadget,用于rop利用
2020暑期Lilac-pwn入门培训
题目形式
- Linux下的可执行文件
- 包含某种漏洞
- 服务器上有一个目标文件, 其内容为flag
- 利用漏洞可以读取系统中目标文件的内容
一些工具的使用
ida
gdb
- x/NFU address (–N = number –F = format –U = unit)
- cheatsheet https://darkdust.net/files/GDB%20Cheat%20Sheet.pdf](https://darkdust.net/files/GDB
pwntools
参考
pwn入门
http://gls.show/p/6eb2f886/