首页
社区
课程
招聘
[原创]KCTF2020秋季赛 第九题 命悬一线 栈溢出-修改增加难度
发表于: 2020-10-26 23:06 2764

[原创]KCTF2020秋季赛 第九题 命悬一线 栈溢出-修改增加难度

2020-10-26 23:06
2764

一道栈溢出

图片描述

程序开启了canary和nx 存在绕过canary

发现了程序使用了类
在类函数中可以存在虚表,可以通过修改虚表达到劫持程序流程
图片描述
可以通过修改rax来劫持程序流程。

可以看到程序调用函数
图片描述

使用了dlope 和dlsym 通过dlopen打开libc,然后使用dlsym动态获取获取函数地址,

字符串都已经异或加密了,增加了恶心成分+1
图片描述

程序检测了/proc/%d/status 文件中的TracerPid来判断是否被调试
图片描述

程序增加了反调试,检测了ptrace,在docker中patch会返回-1,在正常环境是运行不了的,找到了patch,使用的是汇编syscall,当然静态是看不到的,在运行时候还原的,恶心成分+1,

图片描述

图片描述

patch 程序后使用gdb调试单步跟踪,可以看到在析构中有个输出是使用syscall调用 write输出的。
图片描述

构造rop获得shell


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

最后于 2020-12-9 17:02 被kanxue编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//