本次复盘 NewStarCTF2025 Week1 的 Web 部分题目,主要涉及响应头分析、SQL 注入、PHP 类型转换漏洞、前端 JavaScript 逻辑篡改以及 HTTP 请求伪造等常见技术点。
1. multi-headach3
结合题目暗示,首先检查 robots.txt 文件。访问 hidden.php 后发现被重定向到了 index.php,这通常意味着入口隐藏较深。通过抓包工具查看详细的响应头信息,可以发现 Flag 直接存在于响应头中,无需深入页面内容。
2. strange_login
此题考察 SQL 注入的基础利用,特别是万能密码绕过登录验证。构造 Payload 时,用户名输入 1'or 1#,密码任意填写即可成功登录并获取 Flag。这种写法利用了 SQL 语句的逻辑特性,使条件恒真。
3. 宇宙的中心是 php
题目限制了右键、F12 和 Ctrl+U 等常规操作,但可以通过开发者工具手动打开。在源码注释中发现 <!-- s3kret.php -->,访问该路径后遇到 intval 函数的限制。
intval 函数原型为 int intval ( mixed $var [, int $base = 10 ] )。当 base 参数为 0 时,函数会根据 var 的格式自动判断进制。这里采用十六进制进行绕过,Payload 设置为 newstar2025=0x2f,成功触发预期逻辑。
4. 别笑,你也过不了第二关
目标分数为 1000000。在 endLevel() 函数中存在两个关键判断:score 和 currentLevel。由于一共只有两关,currentLevel 从 0 开始计数。直接在浏览器控制台修改变量值,设置 score = 1000000 且 currentLevel = 1,随后调用 endLevel() 函数即可完成通关。
5. 我真得控制你了
页面屏蔽了源码查看功能,需要通过抓包或控制台脚本解除限制。使用以下 JavaScript 代码移除遮罩层并激活按钮:
javascript:(()=>{try{document.getElementById('shieldOverlay')?.remove();document.getElementById('accessButton')?.classList.add('active');document.getElementById('accessButton').disabled=false;const f=document.getElementById('nextLevelForm');if(f){fetch(f.action||'/next-level.php',{method:,:{:},: (.(.(f.()).([i.,i.]))).()}).(r.()).((+t)).((+e))} ()}(e){(+e)}})();


