栈溢出(一)工具和环境

工具安装

1.pwntools

python库,pip安装

2.checksec

pwn自带,也可自己安装。
PWN-最新checksec的安装和使用 – 作者: GitCloud

3.gdb-peda

gdb-peda安装 – 作者:counsellor

4.python2安装pip

Python2安装pip

5.Ubuntu安装32位库

sudo apt-get install lib32z1
sudo apt-get install gcc-multilib

6.ROPgadgets

https://github.com/JonathanSalwan/ROPgadget
python setup.py install

可能出现错误:ImportError: No module named ‘setuptools’

sudo apt-get install python-setuptools

添加环境变量:

vim ~/.bashrc
export PATH=$PATH:/home/lcy/Install/ROPgadget-master

把ROPgadgets的安装目录添加到.bashrc

shell命令:

1. objdump

-t: 显示文件的符号表入口
-j name: 仅显示指定name字段的信息
				如:objdump -j .text main.out
-d: 反汇编代码

2.readelf

-S filename 查看ELF文件区的内容,可用于查找某个变量位于哪一个内存段。
更多信息可使用man readelf查看。

gdb命令

1.vmmap

查看各个地址段有无执行权限

gdb-peda$ vmmap
Start      End        Perm	Name
0x08048000 0x08049000 r-xp	/Ret2shellcode/ret2shellcode
0x08049000 0x0804a000 r--p  /Ret2shellcode/ret2shellcode
0x0804a000 0x0804b000 rw-p  /Ret2shellcode/ret2shellcode

2.b *地址

根据地址下断点。

3.b 函数名

根据函数名下断点。

4.disass 函数名

查看汇编代码

简单python语法

str.ljust()

str.ljust(width,fillchar=None)

widthfillchar
字符串总长度填充字符,默认为空字符

使用指定字符串(fillchar)填充原字符串(str)到指定长度(width)。
如果width小于原字符串长度,则返回原字符串。

工具使用

ROPgadgets

--binary <binary>指定一个二进制文件进行分析。
--only <key>	只显示指定的部分
--string <string>	在可读段中搜索字符串

例如:

$ ROPgadget --binary rop.out --only "pop|ret" | grep rbp
0x0040124b : pop rbp ; pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret
0x0040124f : pop rbp ; pop r14 ; pop r15 ; ret
0x0040115d : pop rbp ; ret
$ ROPgadget --binary rop.out --string "/bin/sh"
Strings information
=======================
0x00402008 : /bin/sh

文档与资料

Linux系统调用号

使用时转十六进制:Linux系统调用号

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值