GaylGame - 第一次出题的尝试
Gaylgame - 第一次出题的尝试
题目连接
附件下载:
- site: PwnBase-Click2Download #站点名称 owner: AkyOI #管理员名字 url: https://platform.akyuu.space/MineProbs/Gaylgame.zip #站点网址 desc: Download-Attachments #简短描述 image: images/avatar.jpg #一张图片 color: “#d0ccf7” #颜色代码
靶机链接: [nc platform.akyuu.space 6666]{.label .primary}
也可以直接去这里看看:
- site: PwnBase-By-AkyOI #站点名称 owner: AkyOI #管理员名字 url: https://platform.akyuu.space/ #站点网址 desc: CTF-Database of PWN #简短描述 image: images/avatar.jpg #一张图片 color: “#d0ccf7” #颜色代码
出题想法
其实是3月出的题目。 有点类似剧情heap题目~ 自从见到堆题目开启随机化之后被恶心到之后就想着恶心出题人去(手动滑稽,我就不信出题人不做题) 而且出题的时候刚好学了高版本IO攻击,于是就整了个题玩。(本来是为了放在校内月赛的build环节,但是一直没有办下一次月赛,于是直接放出来了。) 除此之外,这个题目有很多奇怪的地方,那里就是我为了出题而不断做的妥协。 题目背景是一个充满gay的学校,你的室友想要520找对象但是学校中的许多女生会是男生假扮的Gay,你需要找到正确人,确保你的室友不会孤独终老。 当然,看到漂亮的 [小南梁]{.label .primary} 也可以自己留着(手动滑稽*2)
题目特色
| 序号 | 特色内容 | 恶心/威胁程度评价 |
|---|---|---|
| [1]{.label .primary} | chunk大小随机化(3种fastbin size范围内chunk随机选择生成)(命运由天,不由你) | [⨂⨂⨂⨂⨂]{.label .primary} |
| [2]{.label .primary} | 获取libc基址会把top chunk破坏掉 | [⨂⨂⨂⨂〇]{.label .primary} |
| [3]{.label .primary} | 一堆输出函数打乱思路 | [⨂⨂〇〇〇]{.label .primary} |
| [4]{.label .primary} | 某些函数使用了内联,略微增大逆向难度 | [⨂⨂〇〇〇]{.label .primary} |
| [5]{.label .primary} | 针对使用伪造IO_FILE结构体的UU,只能申请较小的chunksize会导致fake IO struct没法一次构造成功,对于一直使用IO_FILE结构体板子的人可能要修改结构体内部偏移。除此之外,两个chunk之间的结构体payload不能被某些内容覆盖,比如chunk的size部分。 | [⨂⨂⨂〇〇]{.label .primary} |
| [6]{.label .primary} | strcpy会截断payload | [〇〇〇〇〇]{.label .primary} |
还没放个ORW,快说谢谢出题人!!!
考察知识
1.一种基于后时代高版本glibc版本输入输出结构体的攻击利用手法(IO_FILE攻击) 2.一种基于随机数生成算法漏洞的随机数底层攻击方法(伪随机数漏洞) 3.一种基于栈的跨函数帧指针越界读写攻击技术(栈上指针越界读写) 4.一种处于超大内存时代背景下新版本glibc特色保护机制的小型chunk攻击手法(Tcache chunk取出检查与保护绕过)
漏洞存在点
1.栈上指针越界读写更改heap指针引起double free 2.堆溢出,只能使用一次,但是strcpy截断(只要是正常打应该不会被截断) 虽然有明显的栈溢出漏洞,但是在利用那个函数之前你应该是拿不到libc的,而且也没有后门、开了pie,那个函数只能使用一次。(CTFAK日服务器专业户的✌当我没说)
Exp
对,你的Exp跑了。 为了惩罚520有对象的人,就不给你Exp 4小时做不出来的建议甩掉npy之后紫菜~~~