簡體   English   中英

在這些限制下是否可能發生 XSS 攻擊?

[英]Is an XSS attack possible under these constraints?

output 是:

<img src="http://example.com/[input]"
     oncontextmenu="openUrl('http://example.com/[input]')">

其中[input]是用戶輸入,通過此 function 進行清理:

a => {
  a = String(a);
  a = this.replaceAll(a, "&", "&amp;");
  a = this.replaceAll(a, '"', "&quot;");
  a = this.replaceAll(a, "'", "&#39;");
  a = this.replaceAll(a, "<", "&lt;");
  return a = this.replaceAll(a, ">", "&gt;")
}

換句話說,我們似乎無法突破或使用任何形式的引號?

在這些限制下,是否可能發生 XSS 攻擊? 或者是否可以將用戶重定向到除 example.com 之外的任何域? 或者實際上,從 evil.com 加載圖像(或向其發出請求)? 謝謝!

是的,這是一個 XSS 漏洞。

雖然您確實可以很好地轉義 HTML 屬性語法(這樣就不會脫離srconcontextmenu值),但它確實缺少

  • 驗證 example.com 路徑。 src屬性值本身可能是惡意的,如果有人讓訪問者加載http://example.com/logouthttp://example.com/user-content?from=eve&file=bad-iconhttp://example.com/redirect.php?target=evil.com/ ,他們可能贏了。 是的,這取決於誰控制 example.com 以及其中可能存在的漏洞,但是讓受害者加載某些 URL 是許多攻擊的一部分。
  • JS字符串內容的escaping! 假設input'.replace(/.*/,'evil.com')+' ,你最終會得到oncontextmenu="openUrl('http://example.com/'.replace(/.*/,'evil.com')+'')" HTML 實體不會幫助你 - &apos; 在屬性中變為'在腳本中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM