pwn的一些常用命令

gcc常用命令

gcc -o test test.c //-o是指输出的
保护机制
NX:-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMP ESP就不能用了
Canary:-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启) 栈里插入cookie信息
PIE:-no-pie / -pie (关闭 / 开启) 地址随机化,另外打开后会有get_pc_thunk
RELRO:-z norelro / -z lazy / -z now (关闭 / 部分开启 / 完全开启) 对GOT表具有写权限

linux的一些命令

ldd  test//list, dynamic, dependencies的缩写,列出动态库依赖关系。
strace ./test//常用来跟踪进程执行时的系统调用和所接收的信号
readelf -S  level2 //获取各个段的地址
man ls  //查看一些帮助信息

objdump

objdump -R ret2libc3 //寻找先查看__libc_start_main的got表地址
objdump -dj .plt ret2libc1 //plt的各个函数

objdump -f main.o //显示文件头信息 


ROPgadget

ROPgadget --binary test --only “pop|ret”
ROPGadget –binary pwn5 | grep “int 0×80”

pwngdb调试堆

b main
c
r
vmmap
heap
bin
p __&malloc_hook
gdb.attach(p) //在exp中进行断点调试

libc的查找利用

Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pwn import *
>>> elf = ELF('libc_32.so.6')
[*] '/home/hacker/Desktop/pwnstudy_file/xctf-low/libc_32.so.6'
    Arch:     i386-32-little
    RELRO:    Partial RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      PIE enabled
>>> elf.search(b'/bin/sh')
<generator object ELF.search at 0x7f3be1969d00>
>>> next(elf.search(b'/bin/sh')
... next(elf.search(b'/bin/sh'))
File "<stdin>", line 2
    next(elf.search(b'/bin/sh'))
       ^
SyntaxError: invalid syntax
>>> next(elf.search(b'/bin/sh'))
1413163
>>> hex(13163)
'0x336b'

格式化字符串漏洞

%3$x 是打印出第三个格式化字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值