烦死了的配置

image.png

pwntools很好配置这里就没写了

所有的配置使用的都是python3.6版本
除非有特别说明

【工具使用的小例子】buu-pwn-ciscn_2019_ne_5:

# src和addblog里面因为空间足够大都不会溢出
# 而且有保护限制128字节没法溢出
# 但是咋GetFlag函数中复制数据的时候dest函数会溢出因为他只有0x48个字节
# 而来自src的字符串有上百个字节最多可以在addblog的时候存入
# ROPgadget --binary rop --string "sh"

必看环境变量

  • liunx===kali
  • win===win10
如果在git的时候速度很慢请开全局vpn,直接去对应连接下载压缩包然后安装

asm依赖库安装

kali

用于pwn模块的shellcode生成依赖库

git clone https://github.com/Gallopsled/pwntools-binutils
添加下载目录中的install_all.sh文件的777权限chmod 777 [filepath]
然后执行这个文件install_all.sh

ropgaget安装

kali
sudo apt-get install python-capstone
git clone https://github.com/JonathanSalwan/ROPgadget.git
使用python解释器执行sudo python3 setup.py(777权限)

然后运行ROPgadget指令会显示缺少(会有一个at后面的地址是要复制过去的地址)scripts下的文件,解决办法如下

# 在下载的ROPgadget文件夹中有一个scripts文件把他复制过去
sudo cp -r [downloaded_scripts_path] [tipedlack_scripts_path]
# 修改对应的文件的可执行权限
sudo chmod 777 [tipedlack_scripts_path]

然后再次运行ROPgadget即可

附录,基本使用指令
# 查找可存储寄存器的代码
ROPgadget --binary [filepath]  --only 'pop|ret' | grep 'rdi'
# 查找字符串
ROPgadget --binary [filepath] --string "/bin/sh"
ROPgadget --binary [filepath] --string "sh"
# 查找有int 0x80的地址
ROPgadget --binary [filepath]  --only 'int'

onegadget安装【unchecked】

sudo apt -y install ruby
sudo gem install one_gadget

gdb

切换插件

想用 peda:
echo "source ~/GDB-Plugins/peda/peda.py" > ~/.gdbinit
​
想用 peda-heap:
echo "source ~/GDB-Plugins/peda-heap/peda.py" > ~/.gdbinit
​
想用 gef:
echo "source ~/GDB-Plugins/gef/gef.py" > ~/.gdbinit
​
想用 pwndbg:
echo "source ~/GDB-Plugins/pwndbg/gdbinit.py" > ~/.gdbinit

用gdb查看内存

格式: x /nfu <addr>

说明
x 是 examine 的缩写

n表示要显示的内存单元的个数

f表示显示方式, 可取如下值

x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
i 指令地址格式
c 按字符格式显示变量。
f 按浮点数格式显示变量。

u表示一个地址单元的长度

b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节

Last modification:June 29, 2021
如果觉得我的文章对你有用,请随意赞赏。咖啡(12RMB)进度+100%,一块巧克力(1RMB)进度+6%。
(赞赏请备注你的名称哦!后台记录中来自理工小菜狗)