linux缓冲区溢出漏洞简介


实验过程:


1:安装32位编译工具 lib32z1 libc6-dev-i386,关闭地址空间随机化




2:安装编译器zsh并替换sh指向的/bin/bash(因为sh具有保护欺骗性uid程序在整个运行中不保持root权限)




3:shellcode(汇编码字节填充,一共64字节)




4:su权限编译stack.c




Fopen(“badfile”,r)badfile必须存在,也就是我们先运行exploit.c生成可执行文件exploit,运行就会生成badfile





gdb调试可执行文件stack


Gdbstack


Disassmain


得到汇编代码:


 

 

5:分析得出:offset<+0>到<+13>分别进行了16位对齐操作,并且初始化esp,ebp,在<+14>栈空间接着sub指令使esp-214,也即栈向下增长分配了214*4的字节空间,存放517位str数组,可知str 




的地址在




6:设置断点break,print出$esp地址并编译exploit.c:




7:首先运行exploit,生成badfile二进制文件



再运行stack.c漏洞程序去读取badfile,由于badfile在在填充字符时加入了str的起始地址


 




所以读取这段指令只要把badfile中添加str的地址进行ret覆盖即可,所以将0x080484e8加上64得到0xffffcf14,进行反向覆盖,这里的原因是在栈中分配数组str时,大于str的esp的空间都已经使用,而字节填充数组的方向和栈增长的放向是相反的,所以应该以14cfffff填充buffer尾端字节

 

以上操作运行完毕

--- --- --- --- --- --- --- -- ---- -------- ----

溢出操作:


 


如果配置没有做好就不能够获得root权限,因为linux“百毒不侵”的原因便是栈地址随机化,其次/bin/bash下编译器sh的保护机制,在程序运行前已经多次遇阻,无法获得root权限或者提示:栈溢出,核心已转储!

配置成功就是root!


你可能喜欢

Kali Linux中优秀Wifi渗透工具TOP 10

linux 批量执行工具

Linux 命令汇总


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值