[SKSEC::CTF新生web专题训练赛] week1 writeup
1. 扫雷游戏(js)
随便点格子,当点到第二个时,会判定踩雷失败,浏览器给出gameover的提示并刷新网页。F12从来源中找到saolei.js,找到gameover所在的函数if分支。
if (block.isMine) {
block.innerHTML = '🎆';
for (let i = 0; i < row; i++) {
for (let j = 0; j < col; j++) {
block = grid[i][j];
if (!block.isOpen && block.isMine) {
op(block);
block.innerHTML = '🎇';
}
}
}
alert("game over!");
location.reload();
把其中的alert("game over!");location.reload();
删掉并保存。
点到第二个格子时(踩雷),所有的雷都显示了,还有一个空白的格子,点击它,浏览器给出以下提示:you_have_got_the_flag!!!find_it!!!
在js中寻找,发现如下代码,可以知道控制台中给出了flag的线索。
console.log(complexEnd);
alert("you_have_got_the_flag!!!find_it!!!");
控制台中出现了saolei_secret.php,访问该网页,成功获得flag。
第一次做的时候,直接把if (block.isMine)
改成了if (false)
,导致不会踩雷,用鼠标点了半天,虽然最终获得了flag,但是不如上面方法简便。
2. F12(网页禁止右键和F12)
(方法1)控制台除了F12调出,还有一种方法:Shift+Ctrl+i
(方法2)菜单-工具-开发人员工具(不同浏览器可能位置不同)
(方法3)浏览器扩展插件强制右键
3. GET/POST请求
这里需要用到Hackbar浏览器插件。
(1)使用GET方式传入参数: name, 值为: sksec
F12,在hackbar中(或者直接在地址栏中),把http://47.94.179.6:34058/后面加参数?name=sksec
,点击execute(回车)。
(2)使用POST方式传入参数: name, 值为: SKSEC
F12,在hackbar中,开启use POST method,url填第1步得到的地址,body填name=SKSEC
,点击execute,成功获得flag。
4. robots
robots.txt用于告知网络爬虫(搜索引擎)可以抓取和不可以抓取的网页,本题中,访问./robots.txt
可以看到flag所在的网页地址。