首页
社区
课程
招聘
[原创]星盟安全团队TNT
2022-5-8 21:11 15103

[原创]星盟安全团队TNT

2022-5-8 21:11
15103

题干:VDSO attack

设计思路

纯汇编编写,栈溢出调用系统BPI

解题思路

本题只有一个符号表,没有使用libc中的函数,题目开始使用的系统调用写入0x400数据到v1,但是v1只有0x10大小,所以存在栈溢出漏洞,由于没有libc,所以无法使用普通ROP构造链条,这里只能打系统信号机制,系统调用中read返回给rax输入的个数,系统调用号15(64位)32位是77,会触发Sigreturn,把栈上的数据返回给寄存器。系统在执行sigreturn系统调用的时候,不会对signa做检查,它不知道当前这个frame是不是之前保存的哪个frame。由于sigreturn会从用户栈上恢复所有寄存器的值,而用户栈是保存在用户进程的地址空间中的,是用户进程可读写的。如果攻击者可以控制栈,也就控制了所有寄存器的值,而这一切只需要一个gadget:“syscall;retn”,并且该gadget的地址在一些较老的系统上是没有随机化的,通常可以在vsyscall中找到,地址为0xffffffffff600000。如果是32位linux,则可以寻找int 80 指令,通常可以在vDSO中找到,但是这个地址可能是随机的


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2022-5-23 12:05 被kanxue编辑 ,原因:
上传的附件:
收藏
点赞2
打赏
分享
最新回复 (1)
雪    币: 29414
活跃值: (18625)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2022-5-9 12:38
2
0
第六题  废土末世
游客
登录 | 注册 方可回帖
返回