首页
社区
课程
招聘
1
[原创]第六题 Repwn
发表于: 2019-3-23 12:48 3567

[原创]第六题 Repwn

2019-3-23 12:48
3567


仿佛没看到正确的地方,结合题目Repwn
很明显是利用漏洞

貌似判断的后八位是这几个字母

更新后

直接用z3解
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
27
28
29
30
from z3 import *
 
s=Solver()
X=[''for in range(8)]
 
r=Int('r')
for in range(8):
    t='X'+str(i)
    X[i]=Int(t)
print X
for in range(8):
    s.add(And(X[i]>=0,X[i]<=9))
 
v1 = X[3+ 1000 * X[0+ 100 * X[1+ 10 * X[2]
v2 = X[5+ 10 * X[4]
v3 = X[7+ 10 * X[6]
r1 = 2 * (v1 + v2)
s.add(r1==4040)
r2= 3 * v2 / 2
s.add(r2 + 100 * v3 == 115)
s.add(v1 - 110 * v3 == 1900)
num=''
if s.check()==sat:
    m=s.model()
    #print m
    for in range(8):
        num+=chr(int(str(m[X[i]]))+0x30)
    print num
else:
    print "No Solution!"

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
27
28
29
30
from z3 import *
 
s=Solver()
X=[''for in range(8)]
 
r=Int('r')
for in range(8):
    t='X'+str(i)
    X[i]=Int(t)
print X
for in range(8):
    s.add(And(X[i]>=0,X[i]<=9))
 
v1 = X[3+ 1000 * X[0+ 100 * X[1+ 10 * X[2]
v2 = X[5+ 10 * X[4]
v3 = X[7+ 10 * X[6]
r1 = 2 * (v1 + v2)
s.add(r1==4040)
r2= 3 * v2 / 2
s.add(r2 + 100 * v3 == 115)
s.add(v1 - 110 * v3 == 1900)
num=''
if s.check()==sat:
    m=s.model()
    #print m
    for in range(8):
        num+=chr(int(str(m[X[i]]))+0x30)
    print num
else:
    print "No Solution!"

前八个
接着下面

这里应该就是溢出点呢!
那么要跳到哪里呢!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2023-1-28 01:34
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册