没有web手+pwn手伤不起~~
MISC
PhysicalHacker
提交flag时请提交{}里面的
已知数据包文件DASCTF_June.cap和hint.txt
由hint.txt脚本知某个密码使用的字典为00000000-99999999(10个值)。
Wireshark打开cap文件,发现里面只有802.11 wireless LAN协议流量,很有可能是WPA或WEP加密后的无线数据包。
Kali下使用工具 aircrack-ng + airdecap-ng 破解:
aircrack-ng DASCTF_June.cap
查看ESSID信息
aircrack-ng DASCTF_June.cap -w password.txt
用上面的字典爆破密码
得到密码 66666666,用ESSID和密码解密流量包
airdecap-ng DASCTF_June.cap -e DASCTF -p 66666666
得到新流量包,打开查看TCP数据包,在一个包中找到zip文件数据,导出解压得到flag.txt。
只有一句话“Welcome to DASCTF June, Flag is here but you will never find it noob hacker!”
但Ctrl+A全选发现下方有大量空白不可见字符,猜测为snow隐写,
使用snow隐写工具解密:
snow.exe -d flag.txt
得到字符串base32解码即可。
BaiduYun&Gcode
你了解百度网盘的秒传原理么?
hint:数据库中的xshadow.png与平台首页中xshadow.png的前256KB相同
已知一份百度云盘的用户数据文件夹users。这题出得不错,了解百度网盘的秒传原理。
秒传原理:通过检测文件大小和md5值,或者再加上其他如文件前256KB切片的md5值的信息,若云端有相同的文件,则直接进行云端拷贝。
参考:
https://github.com/felixonmars/BaiduPCS-Go
下载BaiduPCS-Go工具,验证自己的百度云账号密码登录。
从users提取 BaiduYunCacheFileV0.db 中的数据库信息,用SQLite Expert查看器打开db文件,找到cache数据记录:
由提示肯定是和xshadow.png有关了,用BaiduPCS-Go工具里的手动秒传功能
BaiduPCS-Go ru -length=<文件的大小> -md5=<文件的md5值> -slicemd5=<文件前256KB切片的md5值(可选)> -crc32=<文件的crc32值(可选)> <保存的网盘路径, 需包含文件名>
放入得到的xshadow.png信息:
BaiduPCS-Go ru -length=30038207 -md5=72b6273dc5c54e8af2490e4acd3a6a3f /temp
发现运行不成功,需要slicemd5值,那么需要 xshadow.png 的前256KB切片的md5了。
根据提示,在首页找到 https://www.linkedbyx.com/static/xshadow.png 下载,kali下取前256KB切片。
split -b 256K xshadow.png
生成文件xaa
md5sum xaa
求切片md5值
重新运行命令:
BaiduPCS-Go ru -length=30038207 -md5=72b6273dc5c54e8af2490e4acd3a6a3f -slicemd5=e973409c4ac718e158be4492ab5d9999 /temp
成功在百度网盘得到云上的xshadow.png文件。
下载,用binwalk提取出zip文件,解压得到flag.gcode。
了解到gcode文件为3D模型切片软件输出的文件类型,可以用下面三个任意一个网页在线预览:
http://gcode.ws/
https://ncviewer.com/
http://jherrm.com/gcode-viewer/
试了很多次在线加载,挂着两个虚拟机,300w+行代码,打开到一半直接内存不足网页崩溃,求助64G大内存神机大佬,在线绘制得到
想到是3D绘制,尝试旋转各视角,在侧面发现玄机,调整好角度记录最终flag。
膜出题大佬~~
Keyboard
I hid the flag. Go find it
已知文件Keyboard.raw和Secret,貌似是4月赛原题。
内存取证:
volatility -f Keyboard.raw imageinfo
得到profile信息 Win7SP1x64,
volatility -f Keyboard.raw --profile=Win7SP1x64 pslist
发现可疑进程 keyboard-log.exe 和 VeraCrypt.exe,分别是键盘记录器和加密器,
搜索 keyboard-log 相关文件
volatility -f Keyboard.raw --profile=Win7SP1x64 filescan | grep keyboard
dump导出可疑 t.txt 文件。
CTKQEKNHZHQLLVGKROLATNWGQKRRKQGWNTA 像是密码的密文,加密方法是上面的 CTFWIKI-CRYPTO-ABC,
猜测QWERTY键盘密码,脚本还原得VERACRYPTPASSWORDISKEYBOARDDRAOBYEK。
用VeraCrypt挂载加密分区文件Secret,得到一个vhd虚拟磁盘文件,再挂载得到flag.txt,打开发现为假flag,
NTFS隐写工具搜一搜,得到正确flag。
透明度
你知道RGBA吗?
已知一张png图,题面RGBA提示LSB隐写,用zsteg工具查看:
zsteg -a Rgba.png
发现 b8,a,lsb,xy 区域有zip文件,导出内容:
zsteg -E "b8,a,lsb,xy" Rgba.png > out.zip
zip内txt文件名提示密码是 nep??
在ARCHPR中设置掩码爆破得zip密码为:nepnb,解压得flag。
CRYPTO
Gemini_Man
貌似N很大噢,耐心点总能解出来
已知很大的 $C$ 和 $N$,无法用常规方法分解,由开局的提示”孪生素数“或题目”Gemini_Man“,猜测 $q=p+2$。
代入 $pq=N$,解一元二次方程得到正确 $p,q$ 值。
题目未给 $e$ ,猜测为常见的 $e=65537$ ,常规脚本放到Kali环境跑出明文 $m$。
(未知原因Windows环境下 pow(C,d,N)
死活跑不出)
HardKnapsack1
HardKnapsack1
求解背包加密,在Sage中采用LLL算法现成脚本跑出结果:
1 | ###Sage### |
PS:带约束条件的HardKnapsack2用LLL跑不出结果,待学习。
REVERSE
easy_maze
走出来便是英雄!ps:将得到的字符串md5加密提交
迷宫题,IDA查看字符串发现迷宫阵字符串:
OOOO0000#000OO0OOOOOO0OO0000OO00OOOOO0OO0OOOO000OO00OO00OOOOO0OO0OOOOOO0000OOOOOOOOOOOOOOOOOOOOOOOO
结合main函数伪代码易知上下左右控制键对应ujhk,且迷宫大小为10×10,#
为终点,0
为路径,X
(实际为空)为起点,调整为:
XOOOO0000#
000OO0OOOO
OO0OO0000O
O00OOOOO0O
O0OOOO000O
O00OO00OOO
OO0OO0OOOO
OO0000OOOO
OOOOOOOOOO
OOOOOOOOOO
得到路径字符串:jkkjjhjjkjjkkkuukukkuuhhhuukkkk,md5加密提交。