SQL注入

2021-10-14 16:23:32 字數 1249 閱讀 7725

sql注入攻擊是通過構建特殊的輸入作為引數傳入web程式,這些輸入大都是sql中的一些組合,通過執行sql語句進而執行攻擊者的操作。

數字注入型

字元注入型

常見的注入型別

利用的方式大致可以分為幾類:

利用資料庫獲得更多的資料或者更大的許可權

獲取字段數:order by x 取臨界值

獲取資料庫名:database()

獲取資料庫版本:version()

資料庫使用者:user()

作業系統:@@version_comile_os

注意:路徑符號及編碼

注入問題

魔術引號:magic_quotes_gpc 開關

如果輸入的資料有單引號(』)、雙引號(」)、反斜線()與 nul(null 字元)等字元都會被加上反斜線,即被轉義(php5.4版本後移除)

安全性函式:

高許可權跨庫注入

跨庫注入條件:root許可權

**之間可能存在資料庫交叉,可以同過已知的root許可權進行跨庫注入。

順序:獲取資料庫名稱-獲取指定表名資訊-獲取列名資訊-獲取指定資料(注意指定資料庫名,注意轉義)

提交方式注入

引數型別注入

數字、字元、搜尋型

$id=$_get;

select * from news where id=1

//搜尋型為id like'%******%'

//搜尋型單引號拿#過濾

引數加解密注入

常見加密格式:

md5盲注攻擊(基於時間延遲)

普通聯合注入和盲注的區別:

1.普通注入,效率高,相容性差

2.盲注,效率較低,相容性強

工具採用的基本都為盲注。

sleep()

if(條件,ture,false)

mid(str,1,1) 擷取

ord ascii 編碼

//獲取表名長度,或用mid指定特定位ascii碼

union select 1,2,3,sleep(if(length(table_name)=4,0,5))

from information_schema.tables where table_schema=database()limit0,1

注意事項

sql語句組合拼接,保證sql語句正常執行

sql語句中閉合使用(符號或截斷)

每個不同注入方式和**應用功能有關

SQL注入(三) sql注入 bugku

原理 mysql 在使用 gbk 編碼的時候,會認為兩個字元為乙個漢字,例如 aa 5c 就是乙個 漢字 前乙個 ascii碼大於 128 才能到漢字的範圍 我們在過濾 的時候,往往利用的思 路是將 轉換為 換的函式或者思路會在每一關遇到的時候介紹 因此我們在此想辦法將 前面新增的 除掉,一般有兩種...

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...

SQL注入 報錯注入

sql注入基礎 盲注 用於注入結果無回顯但錯誤資訊有輸出的情況 floor函式 返回小於等於某值的整數,例如floor 1 則返回1,floor 1.9 也返回1 rand函式 生成隨機數.可指定seed,指定後每次生成的數都一樣即偽隨機,不指定seed則每次生成的隨機數都不一樣.通過floor和r...