程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 利用MySQL數據庫注入點來獲得更多信息實操

利用MySQL數據庫注入點來獲得更多信息實操

編輯:MySQL綜合教程

以下的文章主要介紹的是如何正確利用MySQL數據庫注入點來得到更多MySQL數據庫的相關信息,我們大家都知道當注射MySQL庫的相關輸入點的時,我們就可以通過 version()/user()/database()/password()等內置函數來得到MySQL數據庫的相關信息。

其實我們在注射的時候可以利用MySQL內置的變量來得到更多的MySQL信息 。

其中version()可以寫成@@version來把version當做變量來讀取,這樣一樣可以得到,其他的內置是不可以寫成變量的形式.

大家都應該用過利用pangolin來注入MySQL庫的注射點,認真的朋友都應該知道可以的得到basedir和datadir這兩個變量的信息,其實還有更多的變量在注射的時候可以利用

我整理了幾個在注射的時候可以利用到,收集更多關於MySQL的配置信息

@@have_openssl 如果MySQLd支持客戶端/服務器協議的SSL(加密)則為YES

@@version_compile_os 判斷系統類型

@@max_allowed_packet 包或任何生成的/中間字符串的最大大小

@@max_user_connections MySQL數據庫賬戶允許的最大同時連接數,0表示沒限制

@@skip_networking 如果服務器只允許本地(非TCP/IP)連接,該值為ON

@@table_type 默認表類型(存儲引擎)

@@basedir MySQL安裝基准目錄

@@character_set_database 默認數據庫使用的字符集

@@datadir 數據庫存儲的地方

@@expire_logs_days 二進制日志自動刪除的天數,默認是0,表示”沒有自動刪除”

@@group_concat_max_len 允許group_concat()函數結果的最大長度

@@log_error 錯誤日志的位置

@@lower_case_file_system 該變量說明是否數據目錄所在的文件系統對文件名的大小寫敏感.

ON說明對文件名的大小寫不敏感,OFF表示敏感

@@lower_case_table_names 如果設置為1,表名用小寫保存到硬盤上,並且表名比較時不對大小寫敏感.

如果設置為2,按照指定的保存表名,但按照小寫來比較

@@plugin_dir 插件目錄的路徑

@@tmpdir 保存臨時文件和臨時表的目錄

@@tmp_table_size 如果內存內的臨時表超過該值,MySQL自動將它轉換為硬盤上的MyISAM表

@@sql_mode 當前服務器的sql模式

@@tx_isolation 默認事務隔離級別。默認值為REPEATABLE-READ

@@Connections 連接MySQL數據庫服務器的次數(不管成功還是失敗)

@@max_write_lock_count 最大寫鎖數量

@@old_passwords 是否啟用MySQL323加密方式(就是MySQL數據庫用戶密碼的hash是16位的)

@@Uptime 服務器已經運行的時間

其中我感覺basedir/version_compile_os/log_error/group_concat_max_len這四個變量的作用很大,大家看上面的注視

group_concat_max_len這個變量涉及到group_concat()的返回字符長度,所以在使用group_concat()來注射時候要注意長度的限制.

tips:group_concat()函數的利用如下

  1. url and 1=2 union select 1,group_concat(schema_name),3,4 from information_schema.schemata 

這樣的話,就可以把當前用戶中建立數據庫名全部顯示出來,在注射表名、字段名、字段屬性都可以使用,這樣的話又省了不少體力活

同時group_concat()還可以繞過不能使用limit的現實,當然不嫌累的話,可以使用”!=”的形式來繞過limit的限制

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved