2021TSG CTF_WEB_Welcome to TSG CTF!

2021TSG CTF_WEB_Welcome to TSG CTF!

太难了😭准备做做web题,然后第一个就把我劝退了,做了3-4个小时,我直接跑去学习了。

Welcome to TSG CTF!

welcome_to_tsgctf.tar

让你猜flag,给了源码,本地跑起来

%title插图%num

const { promises: fs } = require('fs');
const fastify = require('fastify');

const flag = process.env.FLAG || 'DUMMY{DUMMY}';

const app = fastify();
app.get('/', async(_, res) => {
    res.type('text/html').send(await fs.readFile('index.html'));
});
app.post('/', (req, res) => {
    console.log(req.body);
    console.log(typeof req.body);
    // ctf = JSON.stringify({
    //     [guess]: true
    // })
    // console.log(ctf);
    // console.log(req.body.flag);
    console.log(req.body[flag]);
    // console.log(process.env);
    if (typeof req.body === 'object' && req.body[flag] === true) {
        return res.send(`Nice! flag is ${flag}`);
    }
    // console.log(req.body);
    // console.log(typeof req.body);
    return res.send(req.body);
});

app.listen(34705, '0.0.0.0');

传过去的body===object,然后req.body[flag]===true

body传过去怎么样都是object,主要是req.body[flag],从body中获取flag得 等于 true,flag是从环境变量中取得的,调了一下午一无所获......,中间怀疑过是不是"fastify": "^3.22.0"问题

在index.html里面有一段js,是以json格式去解析给后端,

headers: {'Content-Type': 'application/json'},
body: JSON.stringify({[guess]: true}),

会把guess的值变成true,但是题目flag是环境变量而不是字符串,所以没用。

我们传过去JSON正常来说应该是获取值,而不是去获取键,这个传到过去他是获取json的键去和环境变量中flag对比,看看是否是true。

看了下wp,传过去空值也是object,通过报错可以获取flag。具体原因我也不知道是什么,等看看更多师傅更新wp怎么说吧,再去看看具体原理。

%title插图%num

(水了一篇)
2021.10.07补充:

file

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇