九州信泰杯 第十一屆山東省網路安全技能大賽
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
沒做出來