第五届浙江省大学生网络与信息安全竞赛决赛-WP
Web
ezphp
1 |
|
因为shuffle
函数使用伪随机数产生器,所以当时间戳相同时,两个相同数组打乱后产生的两个新数组也相同
在本地编写php代码,获取索引值
1 |
|
将本地获取到的索引值传入靶机,成功rce
1 |
|
babysql
过滤了空格,用/**/
代替
misc
checkin_gift
两张图片中间拿到Gift from glzjin: FIWOIxqEZyIWJwIHG01ZDxqMZ1EUGycHGHHlERqnDyAUDyERHH9PI0qOZ0EWGIcEGIxlESSAGREAHGWUF05RAD== Have a nice time, Bye!
先凯撒位移13位
SVJBVkdRMlVJWjVUT01MQkdZM1RHTlpUTUUyREdaQlNHQlREUU9CV0dBM0RJTVpRTVkyRFFNTERNUTJHS05ENQ==
base64
IRAVGQ2UIZ5TOMLBGY3TGNZTME2DGZBSGBTDQOBWGA3DIMZQMY2DQMLDMQ2GKND5
base32
DASCTF{71a67373a43d20f88606430f481cd4e4}
m4a
在文件结尾发现一个被反转的压缩包,提取出来一个带密码的压缩包
添加后缀mp4
发现存在摩斯
-... .- ....- ...-- -... -.-. . ..-. -.-. ..--- ----- ....-
得到压缩包密码BA43BCEFC204
解压得到(+w)v&LdG_FhgKhdFfhgahJfKcgcKdc_eeIJ_gFN
rot47
WZHXGU{5v0u98z95u79829y7z484z54066xy08u}
atbash
dasctf{5e0f98a95f79829b7a484a54066cb08f}
Unkn0wnData
赛后复现
附件结尾存在一串base64字符串
V2hlcmUxc0tleT8KCu2gve25g+2gve2yte2gvO28v+2gvO2+pO2gve26qu2gvO28j+2gve2wju2gvu21i+2gve26q+2gve24huKche2gvO29je2gvO2+pO2gve2wmO2gvO28j+KEueKMqO2gve24je2gvO2+iOKcie2gvu20o+2gve27qe2gvO29jO2gve26qu2gvO29tOKEueKYuu2gve26ueKdk+2gvO29tO2gve20rO2gvO28qu2gvO29te2gve2xo+2gve20hOKYg+2gve2xjO2gve24ju2gve2xjO2gve20hO2gve2xjO2gve20qu2gvO29jO2gve2xge2gvO29je2gvO29jO2gvO28j+2gvO2+g+2gve26sO2gvO29te2gve2wje2gvO2+heKche2gvO29je2gvu22k+2gve24ju2gve24iu2gvu20o+2gvO2/ue2gvO29je2gve2yp+2gve20hO2gve20hO2gvu20o+2gve2xge2gvu21i+2gve26q+KYuu2gvO29tO2gve24ge2gve26q+2gve24h+2gve26sOKPqe2gve24je2gvO28v+2gve2yte2gvu22k+2gve24h+2gve27qeKclu2gve21ue2gve2wju2gve2zgu2gve2zgu2gve2yp+2gve23ku2gve23kg==
解密后用UTF-8
编码显示
stegsolve分析图片,0通道中发现一个压缩包
解压得到key.txt
1 |
|
明显的USB键盘流量
使用脚本提取出来
1 |
|
得到mik<DEL>mae<DEL>shiy<DEL><SPACE>:<DEL>FindT<DEL>Theo<DEL>Realg<DEL>Keyg<DEL>andl<DEL>Makee<DEL>It!d<DEL>
去掉删除的字符应该是mimashi FindTheRealKeyandMakeIt!
,但是这句话的意思让我们找到真正的key,所以这个应该是假的key
仔细观察删掉的字符,发现正好是key开头,提取出来得到key:Toggled
emoji-aes解密得到flag
hard_Digital_plate
赛后复现
foremost
可以分离出一张图片,根据名字猜测是oursecret
隐写
流量分析,发现是数位板流量
tshark提取tshark -r hard_Digital_plate.pcapng -T fields -e usbhid.data | sed '/^\s*$/d' > out.txt
python提取坐标
1 |
|
gnuplot
画图
得到oursecret
密码kfae5y4wi2shwj81y2kda6ax7x
解一下oursecret
,拿到U2FsdGVkX18jQgWzhln3pPiVK8gaBxIzhY1JWcFlKiRdBkV/jDmEBxJV9PZmwBJ7MU3IdNf4hWryZLYRLuxA4w==
图片备注中看到糟糕,好像有几个字写的太轻了,看不清楚
提取低压感数据,以0xf000
作为压感临界值
1 |
|
gnuplot
画图
得到key
:w12kax
aes解密
reverse
ezandroid
先安装apk,随意输入一个值,返回error!
jadx中搜索关键字,得到判断代码
1 |
|
1 |
|
加密函数
1 |
|
用户名明文存储,是ccadwjlyah
程序会对输入后的密码加密然后与程序中的compare
变量比较
获取compare
数组的值,其中有一个成员存储在变量中
解密脚本
1 |
|
得到密码f4n_4ndro1d
赛后发现的一个非预期:因为最后flag是存储在图片中的,所以直接把apk当压缩包解压,去找图片也能看到flag
crypto
math
因为加密代码(str.index(i)*key+7)%37
中取余了37,所以key的值可以认为在0~37的范围内
直接爆破
1 |
|
爆破出37串字符串,只有一串字符串满足flag格式,即32位十六进制字符串
flag: 799a03b7a82076f5028059681df1b722