Xss筆記

xss
XSS攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS,XSS是一種在web應(yīng)用中的計(jì)算機(jī)安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。

書上說JavaScript學(xué)的越好,xss的效果越好。

javascript
javascript:alert(/xss/)

PHP中的相應(yīng)函數(shù):

【詳細(xì)看PHP手冊(cè)】

這里可能不全,想了解更多的看手冊(cè)。

strip_tags($str, [允許標(biāo)簽]) #從字符串中去除 HTML 和 PHP 標(biāo)記

htmlentities($str) 函數(shù) #轉(zhuǎn)義html實(shí)體

html_entity_decode($str)函數(shù) #反轉(zhuǎn)義html實(shí)體

addcslashes($str, ‘字符’)函數(shù) #給某些字符加上反斜杠

stripcslashes($str)函數(shù) #去掉反斜杠

addslashes ($str )函數(shù) #單引號(hào)、雙引號(hào)、反斜線與 NULL加反斜杠

stripslashes($str)函數(shù) #去掉反斜杠

htmlspecialchars() #特殊字符轉(zhuǎn)換為HTML實(shí)體

htmlspecialchars_decode() #將特殊的 HTML 實(shí)體轉(zhuǎn)換回普通字符

下有對(duì)策:

<textarea> </textarea> : 這個(gè)標(biāo)簽把xss代碼 嵌入并直接展示了,閉合了它

<textarea> </textarea> 這里xss <textarea> </textarea> 這樣閉合

利用HTML標(biāo)簽屬性值執(zhí)行xss
例如:
<table backgroup="javascript:alert(/xss/)" > </table>
<img src="javascript:alert(/xss/">

用空格或tab分割:
<img src="java script:alert(/xss/">
像這個(gè),IE就會(huì)順利打開
要是沒有換位符,就以分號(hào)結(jié)尾
<img src="java
script:alert(/xss/">
以此繞過過濾

對(duì)標(biāo)簽屬性轉(zhuǎn)碼
源代碼-->ascii碼
或者部分替換掉

產(chǎn)生自己的事件:
<input type="button" value="click me" onclick="alert('click me')"/>
點(diǎn)擊click me后,會(huì)觸發(fā) onclick 事件,然后執(zhí)行JavaScript代碼。
既然事件能讓JavaScript代碼運(yùn)行,用戶就能利用它來執(zhí)行跨站腳本。

<img src="##" onerror="alert(/xss/)" >
解釋標(biāo)記發(fā)生錯(cuò)誤時(shí),就會(huì)加載SRC。

css:

  1. JavaScript鑲嵌到image:URL 里
  2. 用expression把css和JavaScript關(guān)聯(lián)起來。

防止過濾:
大小寫混寫
用單引號(hào)而不是雙引號(hào)
不用引號(hào)
以上都能繞過xss filter
在樣式里使用 /* */ 以此方式混入字符干擾欺騙過濾器。
xss也支持十六進(jìn)制,構(gòu)造語句。

shellcode:
利用一個(gè)漏洞時(shí)所執(zhí)行的代碼,在xss里,就是JavaScript等腳本所編寫的xss利用代碼。
expliot:
完整編寫好的漏洞利用工具。
poc:
一段證明漏洞存在的程序代碼片段

存儲(chǔ)型
攻擊者在界面插入xss代碼,服務(wù)器將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,當(dāng)用戶訪問到存在xss漏洞的頁面時(shí),服務(wù)器從數(shù)據(jù)庫取出數(shù)據(jù)放在頁面,導(dǎo)致xss代碼執(zhí)行,達(dá)到攻擊效果。

需要能插入的地方,而且還能再展示它。

反射型
在URL中插入xss代碼,服務(wù)端將URL中的xss代碼輸出到頁面上,攻擊者將帶有xss代碼的URL發(fā)送給用戶,用戶打開后受到xss攻擊。
比如說在搜索欄里,輸入之后,查看一下源代碼,閉合原標(biāo)簽,然后插入xss代碼。
get參數(shù)試一試,搜索自己的關(guān)鍵字。
HTML實(shí)體化去應(yīng)對(duì)xss,再通過閉合標(biāo)簽xss。

DOM型
攻擊者在URL中插入xss代碼,前端頁面直接從URL中獲取xss代碼并且輸出到頁面,導(dǎo)致xss代碼執(zhí)行,攻擊者將帶有xss代碼的URL發(fā)送給用戶,用戶到開后受到xss攻擊。
和反射型很像,沒有傳入后端,僅在前端
還是搜索欄,放到URL里的。
對(duì)js代碼要求很高。

比如說,我就在我的留言板里,留言: <script> alert(/xss/)</script> 就會(huì)彈個(gè)框
同樣的還有: 在鏈接上:?name=<script> alert(/xss/)</script>

onmouseover 事件
HTML 中:
<element onmouseover="SomeJavaScriptCode">
JavaScript 中:
object.onmouseover=function(){SomeJavaScriptCode};

<input name="p1" size="50" value="2333" onmouseover="alert(document.domain);" type="text">
onmouseover 屬性可使用于所有 HTML 元素,除了: <base>, <bdo>,
, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 淺談XSS—字符編碼和瀏覽器解析原理 XSS簡(jiǎn)介 XSS攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(Cascadin...
    Smi1e_閱讀 4,762評(píng)論 2 3
  • (一)XSS跨站腳本攻擊 參考:XSS站腳本攻擊 (1)XSS簡(jiǎn)介 XSS攻擊全稱跨站腳本攻擊(Cross Sit...
    肆意咯咯咯閱讀 3,744評(píng)論 4 3
  • 對(duì)網(wǎng)站發(fā)動(dòng)XSS攻擊的方式有很多種,僅僅使用php的一些內(nèi)置過濾函數(shù)是對(duì)付不了的,即使你將filter_var,m...
    dreamer_lk閱讀 7,792評(píng)論 0 6
  • 之前積累了XSS 有一段時(shí)間,因?yàn)槟壳伴_始了一件有趣的工程,需要整合非常多的知識(shí),其中Web 安全這一塊出現(xiàn)最多的...
    刀背藏身閱讀 9,573評(píng)論 0 16
  • 丫頭,我今天參加了上海市的520城市定向挑戰(zhàn)賽,奔跑了將近12公里。 其實(shí)在報(bào)名參賽的時(shí)候我只是想去玩玩,“重在參...
    胡泉_hq閱讀 360評(píng)論 4 2

友情鏈接更多精彩內(nèi)容