1. 程式人生 > 實用技巧 >HECTF2020 新生賽 部分WriteUp

HECTF2020 新生賽 部分WriteUp

HECTF WriteUp

目錄

Misc

png

修改圖片寬度和高度一致。得到flag的一部分:

hxd底部有個:

base64解密:3b79bdf8fcfd55fd}。合成即為flag。

不說人話

Ook加密,線上網站:https://www.splitbrain.org/services/ook

Make Steg Great Again

先用steghide抽取隱藏在圖片中的壓縮包:./steghide extract -sf Steg.jpg,將圖片放入二進位制檢視器hxd,最下面有需要的密碼:P@SsW00000

。得到hacker.zip,解壓得到pyc檔案和一個空白的txt檔案,pyc檔案用stegosaurus抓取隱藏資訊,命令為:python -m stegosaurus -x GitHacker.pyc,隱藏資訊:

Your_key_is:'PPPPasword'_And_do_you_love_winter,根據winter提示想到工具snow,命令:./SNOW -C -p "PPPPasword" white.txt。得到flag:

DASCTF{2741590dbe55ead7f2bfc50abb2d73e3}

Crypto

rsa

已知ne求私鑰d,通過密文c得出明文m。指令碼:

import libnum
from Crypto.Util.number import long_to_bytes

p = 2499568793
q = 4568695582742345507136251229217400959960856046691733722988345503429689799935696593516299458516865110324638359470761456115925725067558499862591063153473862179550706262380644940013531317571260647226561004191266100720745936563550699000939117068559232225644277283541933064331891245169739139886735615435506152070330233107807124410892978280063993668726927377177983100529270996547002022341628251905780873531481682713820809147098305289391835297208890779643623465917824350382592808578978330348769060448006691307027594085634520759293965723855183484366752511654099121387261343686017189426761536281948007104498017003911

e = 65537

c = 575061710950381118206735073806398116370706587076775765253483131078316908073202143802386128272374323616239083134747318254436706806781744501903333604772961927966747648954315962269321297121495398057938617145017999482722197661065698707836824505023856306403892307944203245563411961302499347604417024064678999003637933185177922884103362203639349298263339808508185861692596967147081382566246627668898774233029198694500565511361867375668367875805985660705137109665107860799277624050210666866958502948062330037309873148963011192405012811945540153592090345668265964477204465327474208098404082920129178960510763496025906621820
n = 11419768903339716189261532371559705252086398275876008505047375123074727093589680611869748263351554093957968142343831331654606932684767042958427409579115435445187908134556329979271179879129295667476493886787230948520371350715808988496083694717544298343260369816980228394498856751096191942011545898984240281874509791880690092840536597771674772617299407710771426964764347566008897012753022763270832647775571317162594044338095870404550665457899223394942640876850692848671826594750236910363027949459768124646230555766323417693441861436560072288812137944884954974348317322412816157152702695143094487806945533233359294549423


d = libnum.invmod(e, (p - 1) * (q - 1))
print("d:" + d)

m = pow(c, d, n)  # m 的十進位制形式
string = long_to_bytes(m)  # m明文
print(string)  # 結果為 b‘ m ’ 的形式

no blank space

根據提示古老的5bit編碼得知為博多式電報:形式為大端序.代表1-代表0,轉換後五位為一個數字或字母。對照博多式電報的電報表得到flag。