签到

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
2
bkcrack.exe -C zipeasy.zip -c dasflow.zip -p plain.txt -o 30 -x 0 504B0304
bkcrack.exe -C zipeasy.zip -c dasflow.zip -k 2b7d78f3 0ebcabad a069728c -d out.zip

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

然后挨个试解密得到密码airDAS1231qaSW@,进而得到flag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

function encode($D,$K){
for($i=0;$i<strlen($D);$i++){
$c = $K[$i+1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
$pass='air123';
$payloadName='payload';
$key='d8ea7326e6ec5916';
echo gzdecode(encode(base64_decode(urldecode('J%2B5pNzMyNmU2mij7dMD%2FqHMAa1dTUh6rZrUuY2l7eDVot058H%2BAZShmyrB3w%2FOdLFa2oeH%2FjYdeYr09l6fxhLPMsLeAwg8MkGmC%2BNbz1%2BkYvogF0EFH1p%2FKFEzIcNBVfDaa946G%2BynGJob9hH1%2BWlZFwyP79y4%2FcvxxKNVw8xP1OZWE3')),$key));
?>
# cmdLineP sh -c "cd "/var/www/html/upload/";zip -o flag.zip /flag -P airDAS1231qaSW@" 2>&1methodName execCommand

扭转乾坤

在实际产品场景中常见存在多种中间件的情况,这时如果存在某种拦截,可以利用框架或者中间件对于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
2
3
4
5
6
if(req.cookies.user === "admin") {
res.setHeader("This_Is_The_Flag1", flag1.toString().trim())
res.status(200).type("text/html").send("You Got One Part Of Flag! Try To Get Another Part of Flag!")
}else{
res.status(401).type("text/html").send("Unauthorized")
}

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function CheckController(req,res) {
let checkcode = req.body.checkcode?req.body.checkcode:1234;
console.log(req.body)
if(checkcode.length === 16){
try{
checkcode = checkcode.toLowerCase()
if(checkcode !== "aGr5AtSp55dRacer"){
res.status(403).json({"msg":"Invalid Checkcode1:" + checkcode})
}
}catch (__) {}
res.status(200).type("text/html").json({"msg":"You Got Another Part Of Flag: " + flag2.toString().trim()})
}else{
res.status(403).type("text/html").json({"msg":"Invalid Checkcode2:" + checkcode})
}
}

机你太美

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

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

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

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

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

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