-
-
[原创]KCTF2020秋季赛 第九题 命悬一线 栈溢出-修改增加难度
-
发表于:
2020-10-26 23:06
2969
-
[原创]KCTF2020秋季赛 第九题 命悬一线 栈溢出-修改增加难度
一道栈溢出

程序开启了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
[注意]看雪招聘,专注安全领域的专业人才平台!
最后于 2020-12-9 17:02
被kanxue编辑
,原因: