sql數字型 字元型注入的區別

2021-10-20 19:45:49 字數 1296 閱讀 7028

**

當輸入的參 x 為整型時,通常 abc.php 中 sql 語句型別大致如下:

select * from 《表名》 where id = x

這種型別可以使用經典的 and 1=1 和 and 1=2 來判斷:

url 位址中輸入 www.***.com/abc.php?id= x and 1=1

頁面依舊執行正常,繼續進行下一步。

url 位址中繼續輸入 www.***.com/abc.php?id= x and 1=2

頁面執行錯誤,則說明此 sql 注入為數字型注入。

原因如下:

當輸入 and 1=1時,後台執行 sql 語句:

select * from 《表名》 where id = x and 1=1

沒有語法錯誤且邏輯判斷為正確,所以返回正常。

當輸入 and 1=2時,後台執行 sql 語句:

select * from 《表名》 where id = x and 1=2

沒有語法錯誤但是邏輯判斷為假,所以返回錯誤。

我們再使用假設法:

如果這是字元型注入的話,我們輸入以上語句之後應該出現如下情況:

select * from 《表名》 where id = 'x and 1=1』select * from 《表名》 where id = 『x and 1=2』

查詢語句將 and 語句全部轉換為了字串,並沒有進行 and 的邏輯判斷,所以不會出現以上結果,故假設是不成立的。

**當輸入的參 x 為字元型時,通常 abc.php 中 sql 語句型別大致如下

select * from 《表名》 where id = 『x』

這種型別我們同樣可以使用 and 『1』='1 和 and 『1』='2來判斷:

url 位址中輸入 www.***.com/abc.php?id= x』 and 『1』='1

頁面執行正常,繼續進行下一步。

url 位址中繼續輸入 www.***.com/abc.php?id= x』 and 『1』='2

頁面執行錯誤,則說明此 sql 注入為字元型注入。

原因如下:

當輸入 and 『1』='1時,後台執行 sql 語句:

select * from 《表名》 where id = 『x』 and 『1』=『1』

語法正確,邏輯判斷正確,所以返回正確。

當輸入 and 『1』='2時,後台執行 sql 語句:

select * from 《表名》 where id = 『x』 and 『1』=『2』

語法正確,但邏輯判斷錯誤,所以返回正確。

數字型 sql注入

select from table where id 8 select from table where username admin select from table where username yiz and 1 1 yiz and 1 1 當作字元查詢了。select from table...

pikachu 數字型注入 sqlmap

任意提交資料,使用bp抓包得到post方式提交的引數為 id 1 submit e6 9f a5 e8 af a2 使用sqlmap跑post方式時的格式 python2 sqlmap.py u data 使用sqlmap跑資料庫 python2 sqlmap.py u data id 1 subm...

Oracle數字型,字元型,日期型函式

一.數字型函式 在oracle資料庫中,dual表示真實存在的,它本身包含了乙個dummy欄位,如果使用者刪除了該錶,則oracle將無法啟動。下面記錄的是部分函式。mod n1,n2 求餘,當n2為0時,返回的是n1。sign n 函式,返回引數n的符號。即正數返回1,負數返回 1,0就返回0。r...