九州信泰杯 第十一届山东省网络安全技能大赛

九州信泰杯 第十一届山东省网络安全技能大赛

MISC

1.签到

这是真签到,下载后即可得到flag

2.ezpic

打开后,这是一个

给了一张图片

然后拖到010里面,在末尾找到了一半flag

另一半打开打stegsloves

通过改变背景颜色

然后在里面找到了一个二维码

扫码后得到flag的另一半

最后拼接

flag{cf74bc8a2233179ea73b2de7499d614c}

3.简单编码

下载打开后,是一串莫名其妙的字符串

DJ?EL@b`ddd_Cdf@Ada?dbBe`fegdfgfAgC__N

但是提示呢是60=?+?

我寻思着还需要密码呢

然后我就先放在随波逐流一把梭

然后就发现了Rot47解出来了

synt{o315550r57op52n53q617685787p8r00}

然后看着就像flag

提交后不对,我用这个密码再随波逐流一下flag,

解出来Rot13 是flag

原来60=47+13

flag{b315550e57bc52a53d617685787c8e00}

4.异常的流量

流量打开后,怎么找都没有结果

然后看到了每一个协议都有一堆01组成的字符串

然后我就用kali里的strings 爆一下,然后

得到一堆010二进制

复制,去重,然后想到0,1转图片

可以使用随波逐流转换

得到一张缺三个定位符的二维码

拼接好定位符扫描就得到了flag

(可以利用截图软件配合PS拼接)

5.Bad_File

此题0解

Crypto

1.古典之美

下载后得到了一串类似凯撒的密码

yzabliviiszwve{blbekmnehedtmltfxrhsxhn}

由于本题提示说是凯撒但不完全是凯撒,

所以很有可能是凯撒密码+其他古典密码

而且很有可能是栅栏密码

所以可以放在随波逐流试一下

先凯撒解码,得到了一堆

感觉不行,先栅栏,后凯撒

得到flag

2.ezrsa

两部分组成然后就是

第一步是共模攻击

e1=80920036383271456884731855336908733674195076693352034421030167209168902043240854199888480335276421339155718769136889123734232796673751140527221307207186454156407008720310617805470953605756132383224775816963902169094699618940013911651166503289778627221433656915409322475116356353350793878043745984958915725409
e2=157337742803331381707081104614454139190613421935352344920505563873685572272242119454127715194230070940347536180008189854595839912376034798866664253771618394211437495972597736804857988149726925535444122269369965629542777858719379779679815711307098468031224114336467296001869919652928981505105646315343295989427
e3=151331577311347503650846083374010150290906101190738833999466725504697974581495397221270183896187584673115938288608973023886805812169979614967681838139083032975919276529255845404290715796754552934999621703591626085061263391854538063387400073347900311137920583193874365088731350266894302011814131654974587179897

n=51338292824921384374308264590499958387946036614411779883318535786370969601482494580681728663336755028116825350816416100820453720355911410549734249826843836189313922491268355913821168841949406825118920329426705711705902956786893606291260087119946695940831654741542964069506046490382369164425204539432893855733
c1=7148075358989846285612326649007789216851402092960404815359454478003554023208108349883355640642248538922028451907404797848317571212117289210187441418893611533486201563941544606393403051337184135949095977026090524113823052449209516894275200159337705771127304599909614996858029583203403908549208158026963739180
c2=4335905186349696070952095695051853331216663315249835435738962846976303760642191996244508865679564436777897150011370798875139018288313167929390573486759776910250901605455263936407782280439958696819918483187423257560402666877085156610075743550424083860953236635335194590102141504569701375592873975728026223579
c3=27263930231060685132398996882061585062008690477607569983739548802641704375569521897902696700434075189787034098033516863910388773463085919793680835197198451279918918308913436410104901826031716332322782356608204297641182728876358287859590282497410888271620074087218600802531724944075591372084167471246524545802

higt_p=10496606133250924650973408422392393213195790115730683500477279237006896932591095256261821093956361110796894672841404707169736391999119446226993558226731008
n2=126321430715320565623904437839115230261205837249354771464583438511377310531639176358316274491109984618835180768627424997725195207206583538100767801124581853089219806998538717189795440969518448523591407979173233041366830288720636642028104875845058885442061904337652654949102797542545797325381718940999480888577
c4=15529343657569780107610070210436681112536871252739837525139520316873436881058428771383013443820335831300897616382026635350080680326788599288570752965797436746605522190493656877557700681552496659429667861396285774594350142920136601270601560594260360319781439596125688864142583877800794877701048702096999102587

from gmpy2 import *
from Crypto.Util.number import *

def gongmo(n, c1, c2, e1, e2):
    def egcd(a, b):
        if b == 0:
            return a, 0
        else:
            x, y = egcd(b, a % b)
            return y, x - (a // b) * y
    s = egcd(e1, e2)
    s1 = s[0]
    s2 = s[1]

    # 求模反元素
    if s1 < 0:
        s1 = - s1
        c1 = invert(c1, n)
    elif s2 < 0:
        s2 = - s2
        c2 = invert(c2, n)
    m = pow(c1, s1, n) * pow(c2, s2, n) % n
    return m
result = gongmo(n, c1, c3, e1, e3)
print(long_to_bytes(result))

第二部分通过coppersmith攻击

n = n2
p_fake = higt_p

pbits = p_fake.nbits()
kbits = 128  # p失去的低位
pbar = p_fake & (2 ^ pbits - 2 ^ kbits)
print("upper %d bits (of %d bits) is given" % (pbits - kbits, pbits))

PR.<x> = PolynomialRing(Zmod(n))
f = x + pbar
x0 = f.small_roots(X=2 ^ kbits, beta=0.4)[0]  # find root < 2^kbits with factor >= n^0.3
print(x0 + pbar)

p = 10496606133250924650973408422392393213195790115730683500477279237006896932591095256261821093956361110796894672841404976806452900489014635582796372762571837
q = n2 // p
e = 68
phi = (p-1) * (q-1)

d = gmpy2.invert(e // 4, phi)
m = pow(c4, d, n2)
m = gmpy2.iroot(m,4)[0]
print(long_to_bytes(m))

3.格格格格

没做出来

Web

1.fly_car

由于现在没有靶场,没有图片还原

进去之后是一个开飞机的游戏,通关后,会告诉你去访问rankrankrank.php的文件

访问后告诉你只有admin才能进入,

直接抓包修改cookie 即可得到flag

2.ezmaze

没做出来

3.postpone

此题零解

Re

1.exchange

没做出来

2.rand

没做出来

Pwn

1.ezpwn

没做出来

2.Rust_but_Signin

没做出来

工业互联网

1.Busss

一个流量包

追踪流发现

是零散的flag

最后拼接得到flag

2.oldMachine

此题零解

数据安全

1.数据脱敏

里面有三个txt文本,提示,任务信息,和脱敏要求

datas = open('person.txt', 'r', encoding='utf8').readlines()
out = open('out2.txt', 'w', encoding='utf8', newline='\n')

for i in datas:
name, id, tel = i.split(',')[:3]
name = name[0] + '*' + name[2:]
id = id[:6] + '*' * 8 + id[-4:]
tel = tel[:3] + '*' * 4 + tel[-5:-1]
out.write(f"{name},{id},{tel}\n")

手动把最后一行的9937改成9473

再linux使用命令

md5sum file.txt

就可以查看文件的md5值

最后得到md5为:

76e2f5c0b24aae33b918d82414d5c76d

2.data_analy

没做出来

posted @ 2024-11-03 21:43  m0yu  阅读(290)  评论(0)    收藏  举报