javascript原型链污染
source link: https://suyumen.github.io/2021/11/11/2021-11-11-javascript%E5%8E%9F%E5%9E%8B%E9%93%BE%E6%B1%A1%E6%9F%93/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
javascript原型链污染 · SUYUMEN
javascript原型链污染
这个知识点涉及到的是好久以前的某些题,但是我压根就没看,不是因为我懒的看,而是因为那些比赛好多题,我都不会,所以都轮不到它们。
js原型链污染
文章参考:https://www.leavesongs.com/PENETRATION/javascript-prototype-pollution-attack.html
为了创建类方法,使用原型prototype
。可以视原型prototype
是类的一个属性,而所有此类实例化的对象,都将拥有这个属性中的所有内容,包括变量和方法。
通过类名.prototype
可以访问类的原型;类的实例通过对象名.__proto__
访问类的原型。
原型链继承
JavaScript
使用prototype
链实现继承机制,在调用对象属性时,如果该对象没有,将调用.__proto__
继续向原型查找,直到得到属性或者null
。
原型链污染
原型链污染指的是:如果能够控制并修改一个对象的原型,那么将可以影响所有和这个对象来自同一个类、父祖类的对象。
在可以设置__proto__
的值的情况下,就可以完成原型链污染。
找到能够控制数组(对象)的“键名”的操作比如:
1.对象merge
:
2.对象clone
构造类似如下代码段:
JSON.parse('{"a": 1, "__proto__": {"b": 2}}')
global.process.mainModule.constructor._load('child_process').execSync
Site by Hexo | theme Cxo
907 | 1293Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK