【ctf工具系列】pwndbg

ida

下面两个视图的切换,按下空格键就可以

image.png

image.png

有LOAD的表示程序装入内存的控制信息

image.png

plt在代码段
每个表项都是16字节 例如下面的: xxx26->xxx36

image.png

got在数据段
got.plt在数据段

image.png

image.png

image.png

shift+F12 找到字符串 双击

点函数,输入n,进行重命名

image.png

pwndbg

gdb常用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
gdb link
n
info b
d 1 # 删除断点
b *0xxxxx
b 函数名
c # continue
plt
got
backtrace
return # 把这个库函数退出

fastbin

pwndbg> distance 源地址 目的地址
pwndbg> p/d 0x6c

image.png

image.png

1
disass 地址

image.png

ROPgadget

one_gadget

一个gadget就能完成攻击的目的
对程序的环境和依赖要求比较高

———————-

查看两个地址的距离

gdb方法

1
2
pwndbg> distance 0x7fffffffe140 0x7fffffffe1b0
0x7fffffffe140->0x7fffffffe1b0 is 0x70 bytes (0xe words)

python方法

1
2
3
4
5
6
7
8
[root@ningan ret2text]# python
Python 3.6.9 (default, Mar 10 2023, 16:46:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 0x7fffffffe1b0 - 0x7fffffffe140
112
>>>

找字符串的地址

方法1:ROPgadget

1
2
3
4
5
6
命令: ROPgadget --binary 文件名 --string '/bin/sh'
命令: ROPgadget --binary 文件名 --string '/sh'
命令: ROPgadget --binary 文件名 --string 'sh'
命令: ROPgadget --binary 文件名 --string 'cat flag'
命令: ROPgadget --binary 文件名 --string 'cat flag.txt'

方法2:python

image.png

image.png

方法3:ida

ida shift+F12 跳到字符串


【ctf工具系列】pwndbg
http://example.com/2023/08/17/ctf/【ctf工具系列】ida、pwndbg、one_gadget/
作者
ningan123
发布于
2023年8月17日
许可协议