首页
社区
课程
招聘
[原创]polarisctf招新赛 Writeup-pwn
发表于: 1天前 773

[原创]polarisctf招新赛 Writeup-pwn

1天前
773

本文在个人blog上率先发布

160K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9r3!0K6N6s2y4Z5j5i4u0C8i4K6u0V1M7s2u0G2i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1j5`.

图片描述

nc连一下???

图片描述

图片描述

这是干什么

图片描述

难道限制7byte,还会ban字符

图片描述

出题人怎么这么坏啊

这到底在考什么

格式化字符串???

图片描述

wc,我是天才

可以还原一下函数

char buf[8];

scanf("%7s", buf);

printf(buf);

图片描述

出canary了

图片描述

图片描述

%i$s

这内存里也没flag啊

图片描述

ez-nc的文件头

图片描述

图片描述

有点奇怪的题

图片描述

图片描述

有seccomp

图片描述

ban 了execve和execveat

用orw

图片描述

c++编译

图片描述

全开

图片描述

我去,2.39

图片描述

有backdoor function,那还用个蛋的orw

图片描述

图片描述

这笔记看着就高级

翻译一下

根本看不懂

这出题人怎么这么坏啊

•᷄ࡇ•᷅

图片描述

什么叫main函数里还有加密???

不对,不是加密,这是自校验

图片描述

底下这一块才是要看的

兮,这c++反汇编我还不太看的懂

图片描述

慢慢看了

图片描述

图片描述

先清零buf 376+16字节

malloc 了0x200,512bytes

v23 = begin , v29=the chunk's end

*(__m128i *)&buf[376] = _mm_unpacklo_epi64((__m128i)v23, (__m128i)v23);

将两个 64 位整数交叉组合成一个 128 位的向量

两个参数都是v23,故高64低64都是v23

sub_8A60 和 sub_3570:传入了 buf 的起始地址

先看看8a60

图片描述

控制台这一块

图片描述

ban execve

图片描述

buf共用

图片描述

用来int (str)的

图片描述

8a60结束后free buf的,6720也是

看看case1

图片描述

calloc

图片描述

打印calloc的返回地址

图片描述

单个输入 v9 (items) 和 v42 (stride) 被限制在 32 位以内

n32_1 = (std::ios_base *)(v42 * v9);

乘积被存入了 64 位的 n32_1 中

n32 = (unsignedint)n32_1;

强制将 64 位的 n32_1 转换为 32 位的 unsigned int

v13 = calloc(n32, 1uLL);

使用截断后的 32 位小数值去分配堆内存

存在 Integer Truncation (高位砍掉)

这样就可以伪造所记录的calloc的chunk大小

看看case2

图片描述

看看case3

什么叫引导异步调度器

图片描述

启动后台的任务分发系统

创建总控台(Scheduler Control Plane):分配一个全局的调度器控制块(queue_ctrl),里面记录了调度器的状态,并且初始化了安全策略(strict_policy = 1)

创建任务槽(Task Descriptors):循环 8 次,创建 8 个任务结构体(Task 0 到 Task 7)。每个结构体里预先填好了默认的回调函数指针(handler)和参数(context)

图片描述

可以通过case2的溢出覆盖v10

看看case4

图片描述

4可以泄露addr

图片描述

看看case5

case6

图片描述

UAF

看看case7

图片描述

可以用它改fd

这就是edit

看看case8

Case 8 表面上是一个配置节点的业务功能,但在 Pwn 攻击链中,它是一个无损的 64 位任意内存内容填充器

图片描述

看看case9

可以通过case2把strict_policy改成0

看看case10

看看case11

图片描述

原来是凑数的

图片描述

2.32以上就有safe-linking了

有UAF时就可以直接得到heap_base_addr,pwn.college里写过太多了

图片描述

图片描述

这题的阅读实在有点困难

•᷄ࡇ•᷅

图片描述

图片描述

图片描述

伪c可比伪cpp清秀多了

图片描述


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 23小时前 被shark_pro编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 3681
活跃值: (11290)
能力值: (RANK:438 )
在线值:
发帖
回帖
粉丝
2
请调整一下WP显示格式,现在格式有些错乱,谢谢!
1天前
0
雪    币: 236
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
winmt 请调整一下WP显示格式,现在格式有些错乱,谢谢!
好的,第一次发,不好意思
1天前
0
雪    币: 236
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
winmt 请调整一下WP显示格式,现在格式有些错乱,谢谢!
ok了,麻烦师傅了
23小时前
0
雪    币: 3681
活跃值: (11290)
能力值: (RANK:438 )
在线值:
发帖
回帖
粉丝
5
shark_pro ok了,麻烦师傅了
好的,感谢~
18小时前
0
游客
登录 | 注册 方可回帖
返回