说有过滤,但 web342一样的 EXP 也可以打,反弹shell后看源码才发现确实多了点东西
    login.js

    1. var express = require('express');
    2. var router = express.Router();
    3. var utils = require('../utils/common');
    4. /* GET home page. */
    5. router.post('/', require('body-parser').json(),function(req, res, next) {
    6. res.type('html');
    7. var user = new function(){
    8. this.userinfo = new function(){
    9. this.isVIP = false;
    10. this.isAdmin = false;
    11. this.isAuthor = false;
    12. };
    13. };
    14. if(JSON.stringify(req.body).match(/Text/ig)){
    15. res.end('hacker go away');
    16. }else{
    17. utils.copy(user.userinfo,req.body);
    18. if(user.userinfo.isAdmin){
    19. return res.json({ret_code: 0, ret_msg: '登录成功'});
    20. }else{
    21. return res.json({ret_code: 2, ret_msg: '登录失败'});
    22. }
    23. }
    24. });
    25. module.exports = router;

    emmm 有点不懂这个 JSON.stringify(req.body).match(/Text/ig) 过滤有啥意义就是了。。
    和web342一样的EXP
    image.png
    image.png