簡體   English   中英

基於DOM的XSS失敗。 通過innerHTML插入腳本

[英]Failed DOM-based XSS. Inserting script throght innerHTML

我想向學生展示基於DOM的XSS攻擊的示例。 我認為通過innerHTML插入惡意腳本就足夠了。 但是令我驚訝的是,當我插入腳本時似乎沒有調用它。

示例在這里https://jsfiddle.net/vo9baffu/6/ example

我的問題:是否可以以我的示例中介紹的方式進行基於DOM的XSS攻擊。 如果不是,那我該怎么辦?

順便說一句。 如果您知道一些基於DOM的XSS的好示例,請在評論中發布。

使用良好的圖像:

<img src="/bad.png" onerror="alert(-2)" />

完整代碼:

function showName() {
  tt = "script";
  badCode = "John<img onerror='alert(-2)' src='/bad.png'>";
  console.log(badCode);
  document.getElementById("name").innerHTML = badCode;
}

/bad.png應該觸發onerror

還有你的JSFiddle

簡要地說 :您不能以示例中介紹的方式進行基於DOM的XSS攻擊。

您必須在HTML中包含jQuery,而改用html()方法。 這將完全滿足您的要求,因為html()方法將評估script標記中嵌入的代碼。

使用純JavaScript,您將無法進行XSS攻擊,因為您插入的腳本在大多數情況下不會執行。 發生這種情況是因為內聯腳本僅在解析原始頁面時執行。

您可以使用img標簽和錯誤事件向學生展示XSS攻擊,如下所示:

<img src="whatever.png" onerror="alert('XSS')" />

如這個小提琴所示。

暫無
暫無

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

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