搜集了半天信息,发现题目描述处有源码可以直接下载。。
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 不能出现在输入字符中就好了。
