其实这道题真的不难,写这篇文章的目的完全是因为很久没有更新过博客了,感觉要写点什么才好。
首先我们可以通过爆破登陆信息来泄露那16个随机的数字。
登陆之后可以发现有一次strcpy的机会,通过调试可以发现之前登陆的后面一些位数正好可以copy过去,覆盖随机生成的16个字节。
栈上可以看到有一个libc的地址信息,于是在login的时候算好填充的字节数,然后把信息拷贝到原来的随机数组里面,就可以继续通过登陆来爆破地址信息了。
爆破出来之后,可以算出one gadget的地址,至于怎么找这个东西,推荐一个脚本:https://github.com/david942j/one_gadget
运行之后会发现找到了许多,但其实能用的只有一个。
最后把构造好的字符串再拷贝一次即可。
emmmm,感觉字数好少啊,这么简单的题居然还水了一篇,我有罪(
正在搬小板凳…