利用資料庫進行許可權維持

一,前言

有一段日子沒有露面了,有人說我鯊魚已經回家開麵包車了,我笑了笑我把他和麵包車一起送到了非洲,沒錢人的生活往往就是這麼樸實無華,且枯燥!

今天一大早來到了公司想起了以前做DBA的生活,想起天天寫觸發器和存儲過程的日子,不經意間襠部有了些濕潤,我從椅子上站起來抖了抖身子,突然靈光一閃,如果資料庫觸發器和滲透結合會產生什麼樣的火花呢?

二,觸發器

什麼是觸發器,簡單來說是一種特殊類型的存儲過程,不由用戶直接調用。它在指定的表中的數據發生變化時自動生效。喚醒調用觸發器以響應 INSERT、UPDATE 或 DELETE 語句。他可以查詢其它表,並可以包含複雜的Transact-SQL語句。

修改、刪除觸發器:

alter trigger 觸發器名    //修改觸發器  drop trigger 觸發器名     //刪除觸發器

創建觸發器:

create trigger 觸發器名  on 表名  after delete /insert /update     //可以對delete insert update 等操作設置觸發器  as  觸發器要執行的操作

三,SQL操作監聽

當我們不了解程式碼是如構建SQL語句進行查詢,或者說不了解資料庫每個表的關聯和結構時候我們就需要用到監聽器,直接上操作!

輸入我們需要監聽的資料庫名然後運行即可監聽,所有對此資料庫的SQL數據操作!

我隨便搭了個web系統並註冊了一個名為admin1的帳號,進入個人中心進行修改個人資料!

監聽器監聽到我們修改個人資料,資料庫先是執行了幾條查詢語句,然後進了UPDATE修改個人資訊。

四,簡單實驗

我們開始編寫觸發器,目標就是當我們修改個人資料的時候,資料庫去執行系統命令,我們這裡使用nc反彈shell。

整體思路就是,當我們把自己郵箱改為[email protected] 觸發器IF判斷為true 則執行xp_cmdshell 去執行nc.

郵箱修改為[email protected]的一瞬間,直接收到資料庫伺服器反彈回來的shell。

五,實驗升級

我們能不能控制執行的命令呢?我們在上次程式碼上進行修改嘗試控制執行的命令!

我又多定義了一個參數@Cmd 來接受admin1用戶手機號的值。判斷郵箱是否為[email protected] 如果為true,則通過xp_cmdshell 執行@Cmd 的值!

可以看到我們修改後執行了手機號選項里輸入的值!

六,結束語

實戰中可能比較雞肋,但也不可否認這也是一種手法吧!如果你們笑話我,集體送非洲!