西湖论剑·2022中国杭州网络安全技能大赛Writeup
签到
010打开在最底下发现flag字样,拖到厨子解码即可得知获取flag的方式

mp3
首先mp3文件就可以直接试试mp3stego隐写无密码得到字符串8750d5109208213f

接着binwalk可分离出一张图片,分析可知是lsb,提取出压缩包,密码即前面得到的字符串

然后根据文件名47尝试rot47解密如下:

最后jsfuck解密得到flag

take_the_zip_easy
尝试通过流量包的文件名dasflow.pcapng作为明文内容,利用工具bkcrack进行明文攻击得到ZIP内部的三段秘钥2b7d78f3 0ebcabad a069728c,进而得到流量包
1 | bkcrack.exe -C zipeasy.zip -c dasflow.zip -p plain.txt -o 30 -x 0 504B0304 |

接着分析流量包,直接导出http发现有个带flag的加密包,接着再来追踪tcp流发现解密算法如下:

然后挨个试解密得到密码airDAS1231qaSW@,进而得到flag
1 |
|
扭转乾坤
在实际产品场景中常见存在多种中间件的情况,这时如果存在某种拦截,可以利用框架或者中间件对于RFC标准中实现差异进行绕过。注意查看80端口服务 首先随便传个一句话上去抓包发现报403如下:
1 | Sorry,Apache maybe refuse header equals Content-Type: multipart/form-data; |
然后根据提示对其进行测试发现只要带Content-Type: multipart/即可得到flag

Node Magical Login
根据源码可知flag分为两部分,首先来到/flag1目录下通过设置cookie成为admin从而得到flag1
1 | if(req.cookies.user === "admin") { |

接着来到/flag2目录下,可知当长度等于16时通过数组的方式可以输出一个列表,然后他就会将这个列表转为小写即可抛出错误落入catch块,从而得到flag2
1 | function CheckController(req,res) { |

机你太美
夜神模拟器打开发现有锁屏密码,于是adb连接进入shell在/data/system目录下找到如下三个文件

将其删除后重启即可无密码登录

接着打开SKred可以发现与bbb的对话如下:

再根据提示图片,所以我们将聊天中的文件都长按保存,然后通过adb pull保存至本地,查看exif信息发现提示XOR DASCTF2022,并且压缩包中有加密了的flag

于是我们将这两张图通过stegsolve自带的Image Combiner进行xor处理并没有发现什么,不过可以在另一张图中的alpha 2通道发现存在东西

然后我们就可以提取该处的像素点转01,再转下binary得到e01544a9333ef62a3aa27357eb52ea8a即前面聊天记录中最后面发的那个压缩包的密码,但解压并没有直接给到flag,需要结合前面没用到的xor解得flag
