GaylGame - 第一次出题的尝试

GaylGame - 第一次出题的尝试

2024-05-20·PwnPwnHeap

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之后紫菜~~~