[英]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, "&", "&");
a = this.replaceAll(a, '"', """);
a = this.replaceAll(a, "'", "'");
a = this.replaceAll(a, "<", "<");
return a = this.replaceAll(a, ">", ">")
}
換句話說,我們似乎無法突破或使用任何形式的引號?
在這些限制下,是否可能發生 XSS 攻擊? 或者是否可以將用戶重定向到除 example.com 之外的任何域? 或者實際上,從 evil.com 加載圖像(或向其發出請求)? 謝謝!
是的,這是一個 XSS 漏洞。
雖然您確實可以很好地轉義 HTML 屬性語法(這樣就不會脫離src
和oncontextmenu
值),但它確實缺少
src
屬性值本身可能是惡意的,如果有人讓訪問者加載http://example.com/logout
、 http://example.com/user-content?from=eve&file=bad-icon
或http://example.com/redirect.php?target=evil.com/
,他們可能贏了。 是的,這取決於誰控制 example.com 以及其中可能存在的漏洞,但是讓受害者加載某些 URL 是許多攻擊的一部分。input
是'.replace(/.*/,'evil.com')+'
,你最終會得到oncontextmenu="openUrl('http://example.com/'.replace(/.*/,'evil.com')+'')"
。 HTML 實體不會幫助你 - '
在屬性中變為'
在腳本中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.