打开题目看到一个登陆的画面
随便输了一个密码和账户,发现不可以,有一个注册管理员账户的,随便输了一下就好了,然后登陆进去。
发现了一个flag提交不了显然这是一个假的flag的。题目提示说不需要爆破。没什么头绪,看了大佬的wp才知道是javascript原型链污染。想了解可以看这个javascript原型链污染。
Javascript原型链污染简单来说就是
avaScript原型链污染是指攻击者通过某种方式修改或添加JavaScript对象原型的属性,导致影响到所有基于该原型的对象实例。这种攻击可以使得攻击者能够访问或修改原本不应该被访问的数据,或者在某些情况下执行恶意代码。原型链污染的常见成因是一些函数(如Object.assign
、_.extend
等)在合并对象时,没有正确处理对象的__proto__
属性或constructor.prototype
对象,导致攻击者能够通过构造恶意的对象输入来污染原型。
知道这些以后我们可以在注册用户的时候改变用户属性。来完成用户注册。
ok成功了,重新注册一下管理员在登陆一下。
CatCTF{test_flag_h0w_c@n_I_l1ve_w1th0ut_nilou}