BUU-hgame2018_flag_server-WP

Posted on Nov 19, 2020

其实这道题之前还做了一道srop,但是其实我还没有完全理解,所以那个的wp就得先搁一下,先写这个的。

这道题很简单

这个if是一定会执行的,我们只要让v10=1就可以拿flag了。

这里的read_n函数做的基本上就是读v5个字节到s1中,而

这里我们可以看出s1和v10都在栈上,那么我们只要溢出s1覆盖v10为1就可以了。

但是v5有限制,这里限制了v5要小于64,且不为零,而覆盖需要64+4个字节。这时似乎无法溢出,但是我们看一下read_n的定义

for的判断条件为i!=a2,那么我们把一个负数传进去,就可以读大量的字节了。

exp

比较简单的一道题。