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。

posted @ 2020-11-24 19:56  Anzer  阅读(462)  评论(0编辑  收藏  举报