dbowner通過注射得到一個shell應(yīng)該不是什么難事情了,比較麻煩的是就算利用增量備份,仍然有很多不確定的因素,如果之前別人有過什么錯誤的寫入信息,可能備份出來得到的還是一些不能用的500錯誤,如何能夠提高成功率及重用性呢?如果單從調(diào)整增量備份的方式來看,盡管能夠達(dá)到一些效果,但是方法比較復(fù)雜而且效果不明顯。加上關(guān)于重用性的考慮,例如多次備份的成功率,backup database的方法并不太適用。這里將要講述的是另外一個備份的方法,導(dǎo)出日志文件到web目錄來獲得shell。
飯要一口一口的吃,技術(shù)問題也要一個一個的解決,得到webshell首先要知道物理路徑,然后才能說其他的。關(guān)于物理路徑的暴露有很多方法,注入也可以得到,這點nbsi2已經(jīng)做到了,就不再多說。值得注意的是,如果數(shù)據(jù)庫和web分離,這樣肯定得不到webshell,備份出來的東西可以覆蓋任何文件,一些關(guān)于開始菜單的想法還是有效的,只要注意擴(kuò)展名就好。扯遠(yuǎn)了,反正如果數(shù)據(jù)庫和web在一塊的,你就有機(jī)會,反之還是想其他的辦法吧。 然后你要得到當(dāng)前的權(quán)限和數(shù)據(jù)庫名。如果是sysadmin當(dāng)然沒有必要做很復(fù)雜的事情,dbowner足矣,public則不行。當(dāng)前打開的庫名用一個db_name()就可以得到,同樣很簡單。 默認(rèn)的情況是,一般選擇的數(shù)據(jù)庫故障還原類型都是簡單,這時候不能夠?qū)θ罩疚募M(jìn)行備份。然而我們都是dbowner了,還有什么不能做的呢,只要修改一下屬性就可以。由于不能去企業(yè)管理器中修改,只有用一段SQL語句,很簡單的,這樣就可以: alter database XXXX set RECOVERY FULL 其中XXXX是你得到的數(shù)據(jù)庫的名字,執(zhí)行過后就可以備份日志了。這種修改是破壞性的,因為你不知道以前的故障還原模式是什么,細(xì)心的管理員看到異樣,可能就要開始起疑心。如果之前你能得到數(shù)據(jù)庫的狀態(tài),最好還是在備份完以后把這個數(shù)據(jù)庫的屬性改回來。 剩下的事情就是怎樣讓數(shù)據(jù)庫用最原始的方式記錄下你的數(shù)據(jù)了。這一點和backup database中設(shè)定表名為image的問題相對應(yīng),如果你只是建立一個之類的表,日志里面的記錄還是以松散的格式記錄的,也就是< % % >,沒有任何效果。通過實際的測試,發(fā)現(xiàn)還是可以通過與backup database類似的方式記錄進(jìn)去,如下: create table cmd (a image) insert into cmd (a) values (’’) backup log XXXX to disk = ’c:\xxx\2.asp’ 這樣你已經(jīng)得到一個webshell了。 到這里就完了么?沒有,呵呵,我們繼續(xù)。 到這里有兩個分支方向,第一個,讓注入的時候不出現(xiàn)單引號,太簡單了,我都懶得寫;第二個,減小這個webshell的長度以及提高成功率。下面的方法就是討論第二個分支問題的,同樣適用于backup database的減小。 首先是初始化這個日志。 backup log XXXX to disk = ’c:\caonima’ with init 這樣有點類似于增量備份的第一步,不過有點不同的是,你做了這個以后,你備份出來的可用的shell是固定的。這一點比較重要,因為有了這一步,不管管理員在數(shù)據(jù)庫里面做了什么擾亂你back database的手腳,或者你之前有多少混蛋(你肯定會這么想的)弄了些你不喜歡的東西,都沒有關(guān)系,甚至你做過以后,別人在后面再按照你的方法來一次,還是會成功,這對于偶爾出現(xiàn)的反復(fù),比如對方機(jī)器重裝但是數(shù)據(jù)庫和代碼沒變,有不小的幫助。 然后是調(diào)整一下backup中各個語句的順序。通過第一點,大概的步驟已經(jīng)確定下來了,那就是: alter database XXXX set RECOVERY FULL backup log XXXX to disk = ’c:\Sammy’ with init create table cmd (a image) insert into cmd (a) values (’’) backup log XXXX to disk = ’c:\xxx\2.asp’ 這樣不好,感覺上多了一條沒用的東西。 create table cmd (a image) 確實有點討厭,不過這句是必要的,只好調(diào)整一下位置,弄到其他地方去。 調(diào)換一下順序似乎還可以小一點,對于backup database中的增量情況同樣是可以的,backup database甚至可以僅僅在update后馬上備份,不過由于涉及到了數(shù)據(jù)的存儲格式,情況很復(fù)雜,這里不討論。調(diào)整后的是: alter database XXXX set RECOVERY FULL create table cmd (a image) backup log XXXX to disk = ’c:\Sammy’ with init insert into cmd (a) values (’’) backup log XXXX to disk = ’c:\xxx\2.asp’ 成功的話,備份出來的shell(上面的2.asp)有78.5k,文件長度固定的是80,384字節(jié)。很挑剔的朋友也可以接受了吧,當(dāng)然用這個來生成一個干凈的木馬也可以——這本來就是頂端cs木馬的s端,很通用的。 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!
掃一掃,關(guān)注站長網(wǎng)微信