NewStar CTF 2025 Web Week1 WP

NewStar CTF 2025 Web题解

multi-headach3

直接想到robots.txt,提示很明显了

抓包获得flag

strange_login

直接万能密码:1' or 1=1# 得到flag

 

 

黑客小W的故事(1)

开局直接打猎

bp抓包修改进入下一关,记得改下token,不然又返回第一关了

然后就是和这个蘑菇对话了(这太讷了你知道吗)

提下guding

当时做到这真是没招了,根本不知道delete方法,问了下deepsleep

// 1. 发送DELETE请求到特定端点
fetch("https://eci-2zee3y0yhvj7uppsoyyw.cloudeci1.ichunqiu.com:8000/talkToMushroom?shipin=mogubaozi", {
  method: "DELETE",
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
  body: "chongzi=remove"  // 明确指定要删除的属性
})

// 2. 服务器接收到请求后:
//    - 识别DELETE方法
//    - 解析查询参数 shipin=mogubaozi
//    - 解析请求体 chongzi=remove
//    - 执行删除chongzi属性的操作

// 3. 服务器返回操作结果(通常是HTML页面)
.then(r => r.text())

// 4. 客户端将返回的HTML直接渲染
.then(html => {
  document.open();
  document.write(html);  // 用服务器返回的内容替换当前页面
  document.close();
});

把这段话粘贴到控制台就行了

回到bp,修改下token,进入下一关

提示修改UA头,UA头可以标识身份

666,嘲讽这一块

其实这里的招式后面应该要加上/x.0,例如1.0,2.0用来表示不同的版本

依旧带着token前往下一关

宇宙的中心是php

intval($answer, 0) 中的第二个参数设为 0 时,表示 PHP 会根据字符串的格式自动检测进制

intval($answer,0)已经提示进制转换了

传入newstar2025=0x2f即可

 

我真得控制你了

这里F12被禁用,在浏览器中摸索一番,还有别的打开方式

这里不仅开发者工具被禁用,按钮还有一层保护层,把源代码喂给AI就能得出答案。。。

在控制台中输入

document.getElementById('nextLevelForm').submit(); 提交表单,直接进入下一关

也可以用

document.getElementById('shieldOverlay').remove(); 移除保护层,点击按钮进入下一关

直接猜用户名admin,爆破密码为111111,进入下一关

<?php
error_reporting(0);

function generate_dynamic_flag($secret) {
    return getenv("ICQ_FLAG") ?: 'default_flag';
}


if (isset($_GET['newstar'])) {
    $input = $_GET['newstar'];
    
    if (is_array($input)) {
        die("恭喜掌握新姿势");
    }
    

    if (preg_match('/[^\d*\/~()\s]/', $input)) {
        die("老套路了,行不行啊");
    }
    

    if (preg_match('/^[\d\s]+$/', $input)) {
        die("请输入有效的表达式");
    }
    
    $test = 0;
    try {
        @eval("\$test = $input;");
    } catch (Error $e) {
        die("表达式错误");
    }
    
    if ($test == 2025) {
        $flag = generate_dynamic_flag($flag_secret);
        echo "<div class='success'>拿下flag!</div>";
        echo "<div class='flag-container'><div class='flag'>FLAG: {$flag}</div></div>";
    } else {
        echo "<div class='error'>大哥哥泥把数字算错了: $test ≠ 2025</div>";
    }
} else {
    ?>
<?php } ?>

代码审计

这里只需要用乘法绕过一下即可

?newstar=5*405

值得注意的是:

@eval("\$test = $input;");

这里的$test用了转义符,会将input的值赋给$test,不加的话会是" =$input",会报错

别笑,你也过不了第二关

看下源代码关键是score,最后会检测这个值,修改即可

Week1完结

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值