D^3CTF 2022 WP | WHT战队招新

白帽子社区

共 4467字,需浏览 9分钟

 · 2022-03-09

本文来自“白帽子社区知识星球”

作者:末初



白帽子社区知识星球

加入星球,共同进步
01

Misc


  • BadW3ter


附件是wav,但是文件头有点问题,对比一下正常的wav即可发现前十六个字节被修改了



第一行的内容猜测也是个有用的线索:CUY1nw31lai
修改前十六个进制正常的wav文件头



输入前面的到线索作为密码。得到flag.png


file识别文件发现flag.png是TIFF文件


PS可以选择打开TIFF文件



首先有两个图层,有一个白底图层,然后这个二维码是三部分颜色组成:黑、白、灰


把白底图层涂成灰色(和二维码图层中的灰色一样的:[33,33,33]),用油桶或者填充都可以


然后 图像->调整->亮度/对比度 直接将亮度,对比度拉到最低,扫描二维码即可得到flag



D3CTF{M1r@9e_T@nK_1s_Om0sh1roiii1111!!!!!Isn't_1t?}



 

  • WannaWacca



流量包 tcp contains "flag" tcp追踪长度最长的包


 

 


可以得到解flag.zip.WannaWacca的密钥

d3-win7-5f799647.vmem 查看进程,比较可疑的是cmd.exe以及notepad.exe


 

 

cmdline 查看发现几个可疑点,SmartFalcon.exereadme.txt



memdump 把notepad和SmartFalcon的内存文件导出出来
readme.txt内容如下


What Happened to My Flag?Your important flag is encrypted.
Can I recover My Flag?Sincerely.We guarantee that you can recover your flag safely and easily. But you have not so enough time. If you don't pay in 48 hours, you won't be able to recover your flag.
How Do I Pay?Payment is accepted in D3coin only. Send $126 worth of D3coin to the author. All ransom will be used to play Wacca.
YOU WILL NEVER KNOW MY IP ADDRESS!


binwalk分析 SmartFalcon.exe


 

foremost 可以分离出来zip压缩包

从分离得到压缩包中,寻找zip文件头,提取第二个zip文件头到文件末尾的数据,另存为zip

 

 

得到完整的压缩包,只有一个png图片文件,但是有密码

 

 


有固定的文件头的压缩包,可以使用bkcrack进行明文爆破


echo -n "89504E470D0A1A0A0000000D49484452" | xxd -r -ps > key
bkcrack -C flag.zip -c "I can't see any light.png" -p key -o 0
bkcrack -C flag.zip -c "I can't see any light.png" -k bd363f25 3a7da3aa 4bbe3175 -d flag.png


得到flag.zip中的图片,根据图片特征,有很多白线,以及图片内容是一个苹果,猜测可能是IOS特供图



使用fotoforensics查看这张图在IOS端的显示内容: https://fotoforensics.com/



可以看到在Apple并行端显示的内容不一样,下载这张图可能不好下,F12之后再network中找到这张图的链接,下载这张图。或者审查源码下载也可

 

使用PS打开flag.png原图,分析图片上方的类似条码的东西。长:1920 宽:12



将这部分选中,提取出来的另存成另一张图片,尝试二进制、二维码都无果,之后发现可以分成若干个 2*3 的小块,类似盲文

测试前几个盲文,可发现数据内容是由十六进制组成,且是zip压缩包的字节流文件头

找一张比较标准的,含有数字和字母的盲文对照图

 



然后使用Python简单处理即可得到flag.zip


from PIL import Imagefrom binascii import *
img = Image.open('Braille.png')width, height = img.sizenum_map = [{"[0, 1, 1, 1, 0, 0]":"0"}, {"[1, 0, 0, 0, 0, 0]":"1"}, {"[1, 0, 1, 0, 0, 0]":"2"}, {"[1, 1, 0, 0, 0, 0]":"3"}, {"[1, 1, 0, 1, 0, 0]":"4"}, {"[1, 0, 0, 1, 0, 0]":"5"}, {"[1, 1, 1, 0, 0, 0]":"6"}, {"[1, 1, 1, 1, 0, 0]":"7"}, {"[1, 0, 1, 1, 0, 0]":"8"}, {"[0, 1, 1, 0, 0, 0]":"9"}] alp_map = [{"[1, 0, 0, 0, 0, 0]":"a"}, {"[1, 0, 1, 0, 0, 0]":"b"}, {"[1, 1, 0, 0, 0, 0]":"c"}, {"[1, 1, 0, 1, 0, 0]":"d"}, {"[1, 0, 0, 1, 0, 0]":"e"}, {"[1, 1, 1, 0, 0, 0]":"f"}]num_prefixes = [0, 1, 0, 1, 1, 1]
all_data = []for h in range(height): row_data = [] for w in range(width): pix = img.getpixel((w, h)) if pix == (255, 255, 255): row_data.append(1) elif pix == (0, 0, 0): row_data.append(0) else: print(pix) break all_data.append(row_data)
def get_pix(row_idx, col_idx): sin_bra_data = [] for r in range(row_idx, row_idx + 3): for c in range(col_idx, col_idx + 2): data = all_data[r][c] sin_bra_data.append(data) return sin_bra_data
all_bra = []for r in range(0, height, 3): for c in range(0, width, 2): bra_code = get_pix(r, c) all_bra.append(bra_code)
res_data = ''idx = 0for i in range(len(all_bra)): if all_bra[i] == num_prefixes: for dic_num in num_map: try: res_data += dic_num[str(all_bra[idx+1])] except: pass idx += 1 else: for dic_alp in alp_map: try: res_data += dic_alp[str(all_bra[idx+1])] except: pass idx += 1
with open('flag.zip', 'wb') as f: f.write(unhexlify(res_data))

 

 

一首歌的歌词:《The Ray of Light》

含有很多不可显示字符:<0x7f> ,但是并非零宽度字符隐写,再尝试了字频、wbstego文本隐写等多种文本隐写方式无果之后,想到了之前做盲水印的时候还有一种文本盲水印


Text_Blind_WaterMark: https://github.com/guofei9987/text_blind_watermark


但是缺少密码,密码很有可能在Apple并行端查看的另一张图片上,使用PS继续分析,在右下角可以发现还有一段类似原图的条码,继续尝试发现解出来的字符不对



多次尝试之后把图片发现顺时针旋转180度之后,可以解出来



注意有大小写字母区分

得到如下

UkB5MGYxITlodA equal equal


base64解码得到密码:R@y0f1!9ht


from text_blind_watermark import embed, extract
sentence_embed = open('Future will lead.txt').read()password = 'R@y0f1!9ht'wm_extract = extract(sentence_embed, password)print("解出的盲水印")print(wm_extract)




d3ctf{b576241258a44b868ea25804b0ec1d4e}




WHT战队招新:


  • WHT战队欢迎对CTF有浓厚兴趣的师傅加入我们。

  • 有半年以上CTF竞赛经验的。

  • 包括但不限于Web、Misc、Reverse、Crypto、Pwn等各方向的CTFer加入。

  • 加分项:有一年以上CTF竞赛经验的各方向CTFer。


有意向的师傅请扫描二维码联系我们

如果觉得本文不错的话,欢迎加入知识星球,星球内部设立了多个技术版块,目前涵盖“WEB安全”、“内网渗透”、“CTF技术区”、“漏洞分析”、“工具分享”五大类,还可以与嘉宾大佬们接触,在线答疑、互相探讨。

▼扫码关注白帽子社区公众号&加入知识星球▼

浏览 89
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报