搜集了半天信息,发现题目描述处有源码可以直接下载。。

    user.js

    1. module.exports = {
    2. items: [
    3. {username: 'CTFSHOW', password: '123456'}
    4. ]
    5. };

    login.js

    1. var express = require('express');
    2. var router = express.Router();
    3. var users = require('../modules/user').items;
    4. var findUser = function(name, password){
    5. return users.find(function(item){
    6. return name!=='CTFSHOW' && item.username === name.toUpperCase() && item.password === password;
    7. });
    8. };
    9. /* GET home page. */
    10. router.post('/', function(req, res, next) {
    11. res.type('html');
    12. var flag='flag_here';
    13. var sess = req.session;
    14. var user = findUser(req.body.username, req.body.password);
    15. if(user){
    16. req.session.regenerate(function(err) {
    17. if(err){
    18. return res.json({ret_code: 2, ret_msg: '登录失败'});
    19. }
    20. req.session.loginUser = user.username;
    21. res.json({ret_code: 0, ret_msg: '登录成功',ret_flag:flag});
    22. });
    23. }else{
    24. res.json({ret_code: 1, ret_msg: '账号或密码错误'});
    25. }
    26. });
    27. module.exports = router;

    即满足

    1. name!=='CTFSHOW' && item.username === name.toUpperCase() && item.password === password;

    我们输入的 name 不为 CTFSHOW 然后 name 转换后的大写为 CTFSHOW ,密码为 123456 即可。
    image.png

    网上看了一下,其实想要的考点是
    toUpperCase() 函数,字符 ı 会转变为 I ,字符 ſ 会变为 S 。
    toLowerCase() 函数中,字符 İ 会转变为 i ,字符 K 会转变为 k 。
    可以参考
    https://www.leavesongs.com/HTML/javascript-up-low-ercase-tip.html

    这样的应该是,比如字符 sS 不能出现在输入字符中就好了。