签到

010打开在最底下发现flag字样,拖到厨子解码即可得知获取flag的方式

mp3

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

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

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

最后jsfuck解密得到flag

take_the_zip_easy

尝试通过流量包的文件名dasflow.pcapng作为明文内容,利用工具bkcrack进行明文攻击得到ZIP内部的三段秘钥2b7d78f3 0ebcabad a069728c,进而得到流量包

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

<?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如下:

Sorry,Apache maybe refuse header equals Content-Type: multipart/form-data;

然后根据提示对其进行测试发现只要带Content-Type: multipart/即可得到flag

Node Magical Login

根据源码可知flag分为两部分,首先来到/flag1目录下通过设置cookie成为admin从而得到flag1

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

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