国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

網(wǎng)絡(luò)安全--原型鏈污染

這篇具有很好參考價(jià)值的文章主要介紹了網(wǎng)絡(luò)安全--原型鏈污染。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1.什么是原型鏈污染

2.原型鏈三屬性

1)prototype

2)constructor

3)__proto__

4)原型鏈三屬性之間關(guān)系?

3.JavaScript原型鏈繼承

1)分析

2)總結(jié)

3)運(yùn)行結(jié)果?

?4.原型鏈污染簡(jiǎn)單實(shí)驗(yàn)

1)實(shí)驗(yàn)一

?2)實(shí)驗(yàn)2


1.什么是原型鏈污染

原型鏈污染(Prototype Pollution)是一種web應(yīng)用程序中常見(jiàn)的安全漏洞,主要影響使用JavaScript的應(yīng)用程序。它是一種攻擊技術(shù),通過(guò)修改JavaScript對(duì)象的原型鏈,來(lái)實(shí)現(xiàn)對(duì)應(yīng)用程序的非法操作和控制。

JavaScript中的對(duì)象是通過(guò)原型鏈進(jìn)行繼承的。每個(gè)對(duì)象都有一個(gè)指向其原型的鏈接,它允許對(duì)象從其原型中繼承屬性和方法。當(dāng)JavaScript代碼在處理輸入時(shí),如果不適當(dāng)?shù)卦试S用戶控制原型鏈上的屬性,攻擊者就可以操縱原型鏈,并在目標(biāo)對(duì)象上添加、修改或刪除屬性。

攻擊者利用原型鏈污染可以實(shí)現(xiàn)多種攻擊,包括但不限于:

  1. 修改對(duì)象的原型,從而覆蓋或擴(kuò)展原有屬性和方法,導(dǎo)致應(yīng)用程序的意外行為或漏洞。
  2. 污染全局對(duì)象的原型,導(dǎo)致全局范圍內(nèi)的異常行為,可能導(dǎo)致系統(tǒng)崩潰或敏感信息泄露。
  3. 在原型鏈上添加惡意方法或?qū)傩?,用于劫持或篡改?yīng)用程序的邏輯。
  4. 繞過(guò)應(yīng)用程序的安全控制,獲取未授權(quán)的訪問(wèn)權(quán)限。

原型鏈污染漏洞通常是由于開(kāi)發(fā)者未正確驗(yàn)證和過(guò)濾用戶提供的輸入數(shù)據(jù)所導(dǎo)致的。為了防止原型鏈污染,開(kāi)發(fā)者應(yīng)該始終對(duì)用戶輸入進(jìn)行嚴(yán)格的驗(yàn)證和過(guò)濾,并避免直接使用用戶提供的數(shù)據(jù)來(lái)操作原型鏈上的屬性。另外,更新JavaScript運(yùn)行時(shí)環(huán)境和庫(kù)到最新版本也可以幫助防范已知的原型鏈污染漏洞。

在一個(gè)應(yīng)用中,如果攻擊者控制并修改了一個(gè)對(duì)象的原型,那么將可以影響所有和這個(gè)對(duì)象來(lái)自同一個(gè)類、父祖類的對(duì)象。這種攻擊方式就是原型鏈污染。

2.原型鏈三屬性

1)prototype

prototype 是函數(shù)對(duì)象特有的屬性。在 JavaScript 中,每個(gè)函數(shù)都有一個(gè) prototype 屬性,它是一個(gè)指向?qū)ο蟮囊?。這個(gè)對(duì)象被稱為該函數(shù)的原型對(duì)象,它包含了可以由該函數(shù)的所有實(shí)例共享的屬性和方法。當(dāng)通過(guò)構(gòu)造函數(shù)創(chuàng)建對(duì)象實(shí)例時(shí),實(shí)例的 __proto__ 屬性會(huì)指向構(gòu)造函數(shù)的 prototype 對(duì)象。

2)constructor

constructor 屬性是原型對(duì)象的一個(gè)屬性,它指向構(gòu)造函數(shù)本身。當(dāng)你創(chuàng)建一個(gè)函數(shù)并給它設(shè)置 prototype 屬性后,prototype 對(duì)象會(huì)自動(dòng)獲得一個(gè)名為 constructor 的屬性,該屬性指向該函數(shù)本身。這樣,通過(guò)實(shí)例對(duì)象的 constructor 屬性,你可以訪問(wèn)到創(chuàng)建該實(shí)例的構(gòu)造函數(shù)。

3)__proto__

__proto__ 是每個(gè)對(duì)象都有的屬性,它指向?qū)ο蟮脑?。?JavaScript 中,對(duì)象通過(guò) __proto__ 屬性鏈接到它們的原型對(duì)象,從而形成了原型鏈。當(dāng)你訪問(wèn)一個(gè)對(duì)象的屬性時(shí),如果該對(duì)象本身沒(méi)有該屬性,JavaScript 就會(huì)沿著原型鏈往上查找,直到找到該屬性或者到達(dá)原型鏈的頂端(通常是 Object.prototype)。

4)原型鏈三屬性之間關(guān)系?

// 創(chuàng)建一個(gè)構(gòu)造函數(shù)
function Person(name) {
  this.name = name;
}

// 給構(gòu)造函數(shù)的 prototype 添加一個(gè)方法
Person.prototype.sayHello = function() {
  console.log('Hello, I am ' + this.name);
};

// 創(chuàng)建一個(gè)實(shí)例
const john = new Person('John');

// 使用 __proto__ 訪問(wèn)原型對(duì)象
console.log(john.__proto__ === Person.prototype); // true

// 使用 constructor 訪問(wèn)構(gòu)造函數(shù)
console.log(john.constructor === Person); // true

// 使用 Object.getPrototypeOf() 訪問(wèn)原型對(duì)象
console.log(Object.getPrototypeOf(john) === Person.prototype); // true

// 使用原型鏈調(diào)用方法
john.sayHello(); // 輸出: "Hello, I am John"

3.JavaScript原型鏈繼承

function Father() {
    this.first_name = 'Donald'
    this.last_name = 'Trump'
}

function Son() {
    this.first_name = 'Melania'
}

Son.prototype = new Father()

let son = new Son()
console.log(`Name: ${son.first_name} ${son.last_name}`)

1)分析

Son類繼承了Father類的last_name屬性,最后輸出的是Name: Melania Trump

2)總結(jié)

  1. 在對(duì)象son中尋找last_name

  2. 如果找不到,則在son.__proto__中尋找last_name

  3. 如果仍然找不到,則繼續(xù)在son.__proto__.__proto__中尋找last_name

  4. 依次尋找,直到找到null結(jié)束。比如,Object.prototype__proto__就是null

3)運(yùn)行結(jié)果?

網(wǎng)絡(luò)安全--原型鏈污染,web安全,安全

?4.原型鏈污染簡(jiǎn)單實(shí)驗(yàn)

1)實(shí)驗(yàn)一

let foo = {bar :1}
console.info(foo.bar)
//foo是一個(gè)object foo.__proto__ === object.prototype
foo.__proto__.bar = 2
console.info(foo.bar)
let zoo = {}
console.info(zoo.bar)

?污染過(guò)程

因?yàn)榍懊嫖覀冃薷牧薴oo的原型foo.__proto__.bar = 2,而foo是一個(gè)Object類的實(shí)例,所以實(shí)際上是修改了Object這個(gè)類,給這個(gè)類增加了一個(gè)屬性bar,值為2。

后來(lái),我們又用Object類創(chuàng)建了一個(gè)zoo對(duì)象let zoo = {},zoo對(duì)象自然也有一個(gè)bar屬性

?2)實(shí)驗(yàn)2

function merge(target, source) {
    for (let key in source) {
        if (key in source && key in target) {
            merge(target[key], source[key])
        } else {
            target[key] = source[key]
        }
    }
}

var x = {
    age:11
}

var y = {
    age: 12,
    num: 100
}
merge(x,y)
console.info(x)
console.info(y)

運(yùn)行結(jié)果:

網(wǎng)絡(luò)安全--原型鏈污染,web安全,安全

為什么會(huì)被污染?

merge函數(shù)的目的是將source對(duì)象中的屬性合并到target對(duì)象中。如果source對(duì)象和target對(duì)象具有相同的鍵(屬性名),那么merge函數(shù)將遞歸地將嵌套對(duì)象的屬性合并。否則,如果source對(duì)象具有target對(duì)象中不存在的鍵,merge函數(shù)將直接將該鍵值對(duì)添加到target對(duì)象中,接下來(lái),執(zhí)行 merge(x, y) 語(yǔ)句將會(huì)將 y 對(duì)象的屬性合并到 x 對(duì)象中文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-623275.html

到了這里,關(guān)于網(wǎng)絡(luò)安全--原型鏈污染的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【安全】原型鏈污染 - Code-Breaking 2018 Thejs

    【安全】原型鏈污染 - Code-Breaking 2018 Thejs

    目錄 準(zhǔn)備工作 環(huán)境搭建 加載項(xiàng)目 復(fù)現(xiàn)? 代碼審計(jì) payload ?總結(jié) ????????Nodejs ????????BurpSuite ? ? ? ?? 項(xiàng)目鏈接 ①?下載好了cmd切進(jìn)去 ? ② 安裝這個(gè)項(xiàng)目 ? 可以檢查一下 ③運(yùn)行并監(jiān)聽(tīng) ? ? ? ? ? 可以看到已經(jīng)在3000端口啟動(dòng)了? ??看到了這一句,所以要先了解l

    2024年02月11日
    瀏覽(48)
  • 網(wǎng)絡(luò)安全實(shí)驗(yàn)——web安全

    網(wǎng)絡(luò)安全實(shí)驗(yàn)——web安全

    目錄 實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)原理 實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)1 1. 地址欄中執(zhí)行腳本 2. 對(duì)DOM技術(shù)的利用 實(shí)驗(yàn)2? 1.jump1 2.jump2 3.get 4.xss 5.注冊(cè)bss 6.盜取cookie 7.分析cookie ?實(shí)驗(yàn)3 一.搭建IIS服務(wù)器 二.身份驗(yàn)證和權(quán)限設(shè)置 三.IP地址和域名限制 四.安全通信 五. 單點(diǎn)登錄 ?實(shí)驗(yàn)總結(jié) 1. 了解什么是XSS 2. 掌握盜

    2024年02月13日
    瀏覽(30)
  • 網(wǎng)絡(luò)安全-Web端安全協(xié)議

    網(wǎng)絡(luò)安全-Web端安全協(xié)議

    大家上網(wǎng)娛樂(lè)或辦公總是離不開(kāi)瀏覽器,也就是從web端訪問(wèn)各個(gè)網(wǎng)站,其安全的重要性與其使用的廣泛性成正比。本文就web端常見(jiàn)的相關(guān)安全協(xié)議分享。 SSL(Secure Sockets Layer),安全套接層,它是在傳輸通信協(xié)議(TCP/IP)上實(shí)現(xiàn)的一種安全協(xié)議,它位于應(yīng)用層協(xié)議之下且獨(dú)立的

    2024年02月08日
    瀏覽(30)
  • 網(wǎng)絡(luò)安全-安全Web網(wǎng)關(guān)(SWG)詳解

    網(wǎng)絡(luò)安全-安全Web網(wǎng)關(guān)(SWG)詳解

    在當(dāng)今快速發(fā)展的網(wǎng)絡(luò)環(huán)境中,企業(yè)面臨著越來(lái)越多的網(wǎng)絡(luò)安全挑戰(zhàn)。安全Web網(wǎng)關(guān)(SWG)作為一種高效的網(wǎng)絡(luò)安全解決方案,為企業(yè)提供了一個(gè)安全、可控的網(wǎng)絡(luò)使用環(huán)境。 安全Web網(wǎng)關(guān)是一種網(wǎng)絡(luò)安全設(shè)備或服務(wù),主要功能是監(jiān)控和管理用戶的Web訪問(wèn),以防止惡意軟件入侵和

    2024年02月01日
    瀏覽(47)
  • 網(wǎng)絡(luò)安全——Web目錄掃描

    網(wǎng)絡(luò)安全——Web目錄掃描

    一、Web目錄掃描原因 1、發(fā)現(xiàn)網(wǎng)站后臺(tái)管理登錄頁(yè)面,可以嘗試發(fā)現(xiàn)漏洞,進(jìn)行爆破 2、尋找未授權(quán)頁(yè)面,有些網(wǎng)站在開(kāi)發(fā)時(shí)有一些沒(méi)有授權(quán)的頁(yè)面,在上線后沒(méi)有及時(shí)清除,可以利用這個(gè)弱點(diǎn)進(jìn)行入侵 3、尋找網(wǎng)站更多隱藏信息 二、Web目錄掃描方法 1、robots.txt ?例:可以看到

    2024年02月05日
    瀏覽(27)
  • Web 學(xué)習(xí)筆記 - 網(wǎng)絡(luò)安全

    Web 學(xué)習(xí)筆記 - 網(wǎng)絡(luò)安全

    目錄 m前言 正文 XSS 攻擊 簡(jiǎn)單示例 XSS 防御 CSRF ?Web 安全方面的基本知識(shí)是有很必要的,未必就要深入理解。本文主要介紹常見(jiàn)的網(wǎng)絡(luò)攻擊類型,不作深入探討。 網(wǎng)絡(luò)攻擊的形式種類繁多,從簡(jiǎn)單的網(wǎng)站敏感文件掃描、弱口令暴力破解,到 SQL 注入,再到復(fù)雜的網(wǎng)絡(luò)劫持等,

    2023年04月24日
    瀏覽(55)
  • 安全開(kāi)發(fā)-JS應(yīng)用&NodeJS指南&原型鏈污染&Express框架&功能實(shí)現(xiàn)&審計(jì)&WebPack打包器&第三方庫(kù)JQuery&安裝使用&安全檢測(cè)

    安全開(kāi)發(fā)-JS應(yīng)用&NodeJS指南&原型鏈污染&Express框架&功能實(shí)現(xiàn)&審計(jì)&WebPack打包器&第三方庫(kù)JQuery&安裝使用&安全檢測(cè)

    Node.js是運(yùn)行在服務(wù)端的JavaScript 文檔參考:https://www.w3cschool.cn/nodejs/ Nodejs安裝:https://nodejs.org/en 三方庫(kù)安裝 express:Express是一個(gè)簡(jiǎn)潔而靈活的node.js Web應(yīng)用框架 body-parser:node.js中間件,用于處理 JSON, Raw, Text和URL編碼的數(shù)據(jù)。 cookie-parser:這就是一個(gè)解析Cookie的工具。通過(guò)re

    2024年02月11日
    瀏覽(58)
  • 【web網(wǎng)絡(luò)安全基礎(chǔ)階段一】

    【web網(wǎng)絡(luò)安全基礎(chǔ)階段一】

    在學(xué)習(xí)web網(wǎng)絡(luò)安全,需要了解web安全前端基礎(chǔ),我將會(huì)從HTML,CSS,JavaScript前端技術(shù),以及HTTP協(xié)議運(yùn)作原理進(jìn)行闡述。 前端技術(shù)作用 前端開(kāi)發(fā)是創(chuàng)建Web頁(yè)面或App等前端界面呈現(xiàn)給用戶的過(guò)程。 ? HTML,CSS及JavaScript ? 網(wǎng)頁(yè)制作是Web1.0時(shí)代的產(chǎn)物,早期網(wǎng)站主要內(nèi)容都是靜態(tài)

    2024年04月25日
    瀏覽(18)
  • 網(wǎng)絡(luò)安全CTF之Web基礎(chǔ)

    網(wǎng)絡(luò)安全CTF之Web基礎(chǔ)

    Web類的考試,在CTF比賽中十分常見(jiàn)。 本人從計(jì)算機(jī)專業(yè)轉(zhuǎn)網(wǎng)絡(luò)安全發(fā)展,屬于半路出家,一知半解,如有總結(jié)不到位的地方,歡迎交流分享。 攻防世界Web Web基礎(chǔ)中,常見(jiàn)的考點(diǎn)如下: 1、源代碼隱藏 打開(kāi)網(wǎng)頁(yè),顯示 FLAG is not here。 F12查看源代碼,取得flag 2、GET和POST傳參 G

    2024年02月07日
    瀏覽(17)
  • 淺談網(wǎng)絡(luò)爬蟲(chóng)與Web安全

    ? ? ? ?網(wǎng)絡(luò)爬蟲(chóng)(Web Crawler) ,又稱網(wǎng)絡(luò)蜘蛛(Web Spider)或網(wǎng)絡(luò)機(jī)器人(Web Robot),是一種按照一定的規(guī)則自動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或者腳本,已被廣泛應(yīng)用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)絡(luò)爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應(yīng)的索引技術(shù)組織這些信息

    2024年03月10日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包