这道题两个功能点,登录和注册,注册选择是否管理员,选择是要输入邀请码,不然就是普通用户,进去里面给了个假flag调戏我!还有个妮露图片(我不是原皮!)
下一步估计得是管理员身份才能进行,但是搞了很久不知道怎么绕过,也不是sql注入
看了一下别人的讲解才知道是node.js的原型链污染
参考文章:JavaScript 原型链污染 | Drunkbaby's Blog (drun1baby.top)
我是大致明白了,实例化的对象会继承类的prototype属性,JSON 解析的情况下,__proto__
会被认为是一个真正的“键名”,如果修改实例化对象的__proto__属性的值也会将类的prototype值进行修改,结合这道题实现越权以管理员身份登录
请看photograph 构造"__proto__":{"isAdmin":true}即可,输邀请码还是会被检验是错的!大概原理就是类那里属性值也被修改,已经提前知道了,打个比方:你妈生下来了你自然知道你是她儿子,你就不用再证明你是她儿子了!