hfctf-2020

参加了2020的虎符ctf,因为最近在学pwn,其他题目也就没有看,最后只解出一道pwn题。真的是太菜了,等着学习大师傅们的wp吧。

count

只有这道题是在出wp之前做出的。

连接题目返回一个算式,要求通过200关。看起来不像pwn题,猜测可能是输入的地方存在漏洞。

拖进ida,发现好像汇编有点奇怪,不是平时常见架构的程序。

发现sub_400990是main函数

main

阅读代码,随机生成4个在0~99的整数,要求用户输入line 38的计算结果,连续输入正确200次后就会调用一个read函数,共度入100个字节,然而v8只有78个字节,所以这里存在栈溢出漏洞。紧接着下面有一个if,判断v9是否等于304305682,如果等于讲调用函数sub_400920,看一下这个函数

400920

直接就get shell。

所以我们的攻击思路就是,先完成200关的计算任务,最后利用栈溢出覆盖v9的值,使if成立即可。

exp如下

exp

因为不会正则,只能手动分离4个数字了orz

执行

flag

[以下为赛后Pwn题复现]