<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    基于Chromium 的 XSS 檢測工具,BurpSuite 靶場實踐

    VSole2022-09-13 16:49:59

    1 介紹

    XSS 是網絡中最常見的漏洞,再配合其它的攻擊手段往往能輕易敲開服務器的大門。在各大漏洞平臺中,XSS 漏洞也是數量最多的。本文介紹基于 Chromium 源碼實現的 XSS 檢測工具,該工具采用動態污染追蹤(Taint Tracking)技術,可以監測 source 與 sink 之間的數據流動過程,為人工驗證提供詳實可靠的依據。

    2 工具演示視頻

    (1)我的工具如何檢測 XSS?Burp Suite 靶場實踐 https://www.zhihu.com/zvideo/1505471657166282752

    (2)我的工具如何檢測 XSS?Burp Suite 靶場實踐 https://www.zhihu.com/zvideo/1505847898797969409

    視頻還在更新中… …

    3 原理介紹

    污點分析技術(taint analysis, 又被稱作信息流跟蹤技術)是自動檢測 XSS 的理論基礎,它是信息流分析技術的一種實踐方法, 該技術通過標記系統中的敏感數據, 進而跟蹤‘標記數據’在程序中的傳播過程, 以檢測系統安全問題。

    4 敏感數據

    在污點分析技術中,最重要的兩個概念分別是敏感數據和傳播記錄。首先引入敏感數據的定義:由 source 開始,經過傳播后進入 sink 并引發“數據與指令的錯用”的數據被定義為敏感數據。其中 source 為污染源點,也就是數據的生產者。sink 為污染終點,也就是數據的消費者。

    攻擊者可以控制的輸入被稱作污染源點,常規的污染源點如下:

    //Source 代表 document、location、element

    Source.baseURI

    Source.cookie

    Source.documentURI

    Source.domain

    Source.URL

    Source.referrer

    Source.textContent

    Source.title

    Source.hash

    Source.hostname

    Source.href

    Source.pathname

    Source.search

    Source.className

    Source.innerHTML

    Source.namespaceURI

    漏洞的本質是數據與指令的錯用,所以能消費敏感數據的方法(函數或屬性)都是污染終點,常規的污染終點如下:

    //以下是全局方法

    setTimeout()

    setInterval()

    Function()

    alert()

    eval()

    window.postMessage()

    //Sink 代表 document、location、element

    Sink.write()

    Sink.writeln()

    Sink.createComment()

    Sink.createTextNode()

    Sink.createElement()

    Sink.innerHTML

    Sink.className

    Sink.innerText

    Sink.textContent

    Sink.title

    Sink.href

    5 傳播記錄

    接下來引入傳播記錄的定義:被 sink 消費的數據的來源以及變化過程稱為傳播記錄。

    傳播記錄描述了數據從 source 到 sink 的變化過程,傳播記錄的完整性直接影響 XSS 的檢測結果。衡量傳播記錄的指標主要有:

    (1)傳播記錄是否全面、完整地描述了數據的變化過程;

    (2)傳播記錄是否可以做到字符級別的描述。

    眾所周知,觸發 XSS 漏洞的字符串往往是來自于不同 source 的字符的組合,如果不能完整記錄數據變化的過程或做不到字符級別的描述,那將會產生大量的漏報。通過分析 ES 和 HTML 規范可以得知:以下的 API 可以修改字符串。做好以下這些 API 的記錄就可以最大程度保證傳播記錄的完整性。

    String.prototype.anchor 用于創建 a 標簽,樣例代碼如下:

    var myString = "Table of Contents";
    document.body.innerHTML = myString.anchor("contents_anchor");
    //輸出.............
    <a name="contents_anchor">Table of Contents</a>
    

    1. String.prototype.big 創建帶有 big 標簽的字符串,樣例代碼如下:

    var worldString = 'Hello, world';
    console.log(worldString.big());       // <big>Hello, world</big>
    

    3. String.prototype.blink 創建帶有 blink 標簽的字符串,樣例代碼如下:

    var worldString = 'Hello, world';
    console.log(worldString.blink());   // <blink>Hello, world</blink>
    

    4. String.prototype.charAt

    5. String.prototype.charCodeAt,charCodeAt() 方法返回指定位置的字符的 Unicode 編碼。返回值是 0 – 65535 之間的整數。

    6. String.prototype.codePointAt()

    7. String.prototype.concat,concat() 方法拼接兩個或多個字符串并返回一個新的字符串

    8. String.prototype.fixed,樣例代碼如下:

    var worldString = 'Hello, world';
    console.log(worldString.fixed()); // "<tt>Hello, world</tt>"
    

    9. String.prototype.fontcolor,樣例代碼如下:

    var worldString = 'Hello, world';
    console.log(worldString.fontcolor('red') +  ' is red in this line');
    // '<font color="red">Hello, world</font> is red in this line'
    

    10. String.prototype.fontsize

    11. String.prototype.link,樣例代碼如下:

    var hotText = 'MDN';
    var url = 'https://developer.mozilla.org/';
    console.log('Click to return to ' + hotText.link(url));
    // Click to return to <a >MDN</a>
    

    12. String.prototype.italics,樣例代碼如下:

    var worldString = 'Hello, world'; console.log(worldString.blink());
    //"<i>str</i>"
    

    13. String.prototype.match

    14. String.prototype.search

    15. String.prototype.matchAll

    16. String.prototype.normalize

    17. String.prototype.padEnd,樣例代碼如下:

    const str1 = 'Breaded Mushrooms';
    console.log(str1.padEnd(25, '.'));
    // expected output: "Breaded Mushrooms........"
    

    18. String.prototype.padStart

    19. String.prototype.repeat

    20. String.prototype.replace

    21. String.prototype.slice

    22. String.prototype.small,樣例代碼如下:

    var worldString = 'Hello, world';
    console.log(worldString.small());     // <small>Hello, world</small>
    

    22. String.prototype.split

    23. String.prototype.strike

    24. String.prototype.sub,樣例代碼如下:

    var worldString = 'Hello, world';
    console.log(worldString.sub());     // <sub>Hello, world</sub>
    

    25. String.prototype.substr

    26. String.prototype.substring

    27. String.prototype.sup

    28. String.prototype.toLocaleLowerCase

    29. String.prototype.toLocaleUpperCase

    30. String.prototype.toLowerCase

    31. String.prototype.toUpperCase

    32. String.prototype.toString

    33. String.prototype.trim The trim() method removes whitespace from both ends of a string and returns a new string, without modifying the original string.

    34. String.prototype.trimEnd

    35. String.prototype.trimStart

    36. String.prototype.valueOf

    37. RegExp.prototype.exec

    38. document.write

    39. document.writeln

    40. decodeURI encodeURI decodeURIComponent encodeURIComponent unescape escape

    41. postMessage

    42. ‘+’ 加法

    總結,檢測 XSS就是記錄數據從生產者到消費者的傳播過程,這正污點分析技術的應有之義。

    個人能力有限,有不足與紕漏,歡迎批評指正

    xsschromium
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    1 介紹XSS 是網絡中最常見的漏洞,再配合其它的攻擊手段往往能輕易敲開服務器的大門。在各大漏洞平臺中,XSS 漏洞也是數量最多的。傳播記錄描述了數據從 source 到 sink 的變化過程,傳播記錄的完整性直接影響 XSS 的檢測結果。眾所周知,觸發 XSS 漏洞的字符串往往是來自于不同 source 的字符的組合,如果不能完整記錄數據變化的過程或做不到字符級別的描述,那將會產生大量的漏報。做好以下這些 API 的記錄就可以最大程度保證傳播記錄的完整性。
    Ppmap - XSS掃描器
    2021-07-29 06:09:26
    文章來源: Khan安全攻防實驗室 一個用 GO 編寫的簡單掃描器/利用工具,它自動利用已知和
    一直以來在挖掘xss時總是被各種過濾,各種實體化轉義。是真滴很難受,想連著幾天興沖沖奔著表單去,看著被過濾,轉義的payload,用盡辦法都過不去的心情。最后似乎有個聲音在跟我說,能不能找到一處大家都會不太注意的點,把payload帶進去,順便執行了。
    前陣子做了一下 Dice CTF 2021,做出了幾個 XSS ,本次就寫一下包括復現題在內的所有學習筆記。
    Headless Chrome是谷歌Chrome瀏覽器的無界面模式,通過命令行方式打開網頁并渲染,常用于自動化測試、網站爬蟲、網站截圖、XSS檢測等場景。
    半個月前發布了xscan掃描器,這期間又針對很多場景進行了優化,本文來做一個總結。基于dom相似度的爬蟲獲取數據集的一個重要方式就是爬蟲,開源爬蟲中比較好的有projectdiscovery的katana和 crawlergo。此時在之前payload基礎上加一個引號,就能破壞原有結構,此時asdsda經過語義分析后,屬性為 Attribute的name,語義發生了改變,則說明可以XSS了。對url每層路徑也進行一下檢測,也能發現很多XSS。真實世界有趣的XSS國外也有個xss掃描器叫knoxss,它的測試用例不錯,覆蓋了很多場景。
    Chrome 0 day漏洞被用于Candiru監控惡意軟件。
    防病毒公司 Avast 的研究人員報告說,由以色列監控公司Candiru開發的DevilsTongue間諜軟件被用于攻擊中東的記者,并利用了最近修復的 CVE-2022-2294 Chrome 零日漏洞。 該漏洞由谷歌于 2022 年 7 月 4 日修復,是位于 Web 實時通信 (WebRTC) 組件中的堆緩沖區溢出,這是谷歌在 2022 年修補的第四個零日漏洞。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类