PWN伪随机数绕过
伪随机数
题目
题目1
使用IDA打开附件,然后进行代码审计,查看到有
srand()
函数,加上下方还有v0==rand()
这就说明了需要知道rand()
函数产生的随机数具体是多少
- 由于该程序是在Linux下的程序,使用一般是gcc编译器,使用的libc库应该也是glibc。所以这时应该在Linux下编写一个种子同样为
0x39
的随机数。注意:并不能使用Windows下的dev c++编写该程序,编译器不同libc库使用的不同,可能会导致随机数的算法不同,从而使得同样种子产生的随机数会不同。
1 |
|
- 编写完程序后使用gcc编译,编译完成直接运行程序得到的随机数如下
1 | 1956681178 |
- 这时就可以绕过随机数了
然后就是正常栈溢出编写64位的ROP链了,本题还有后门函数那就更容易了
exp:
1 | from pwn import * |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 iyheart的博客!
评论