搜集了半天信息,发现题目描述处有源码可以直接下载。。
user.js
module.exports = {
items: [
{username: 'CTFSHOW', password: '123456'}
]
};
login.js
var express = require('express');
var router = express.Router();
var users = require('../modules/user').items;
var findUser = function(name, password){
return users.find(function(item){
return name!=='CTFSHOW' && item.username === name.toUpperCase() && item.password === password;
});
};
/* GET home page. */
router.post('/', function(req, res, next) {
res.type('html');
var flag='flag_here';
var sess = req.session;
var user = findUser(req.body.username, req.body.password);
if(user){
req.session.regenerate(function(err) {
if(err){
return res.json({ret_code: 2, ret_msg: '登录失败'});
}
req.session.loginUser = user.username;
res.json({ret_code: 0, ret_msg: '登录成功',ret_flag:flag});
});
}else{
res.json({ret_code: 1, ret_msg: '账号或密码错误'});
}
});
module.exports = router;
即满足
name!=='CTFSHOW' && item.username === name.toUpperCase() && item.password === password;
我们输入的 name
不为 CTFSHOW
然后 name
转换后的大写为 CTFSHOW
,密码为 123456
即可。
网上看了一下,其实想要的考点是toUpperCase()
函数,字符 ı 会转变为 I ,字符 ſ 会变为 S 。toLowerCase()
函数中,字符 İ 会转变为 i ,字符 K 会转变为 k 。
可以参考
https://www.leavesongs.com/HTML/javascript-up-low-ercase-tip.html
这样的应该是,比如字符 s
或 S
不能出现在输入字符中就好了。