當(dāng)注射MySQL庫的輸入點(diǎn)的時候,我們可以通過version()/user()/database()/password()等內(nèi)置函數(shù)來得到MySQL的相關(guān)信息,其實(shí)我們在注射的時候可以利用MySQL內(nèi)置的變量來得到更多的MySQL信息
其中version()可以寫成@@version來把version當(dāng)做變量來讀取,這樣一樣可以得到,其他的內(nèi)置是不可以寫成變量的形式.
大家都應(yīng)該用過利用pangolin來注入MySQL庫的注射點(diǎn),認(rèn)真的朋友都應(yīng)該知道可以的得到basedir和datadir這兩個變量的信息,其實(shí)還有更多的變量在注射的時候可以利用-
我整理了幾個在注射的時候可以利用到,收集更多關(guān)于MySQL的配置信息
@@have_openssl 如果MySQLd支持客戶端/服務(wù)器協(xié)議的SSL(加密)則為YES
@@version_compile_os 判斷系統(tǒng)類型
@@max_allowed_packet 包或任何生成的/中間字符串的最大大小
@@max_user_connections MySQL賬戶允許的最大同時連接數(shù),0表示沒限制
@@skip_networking 如果服務(wù)器只允許本地(非TCP/IP)連接,該值為ON
@@table_type 默認(rèn)表類型(存儲引擎)
@@basedir MySQL安裝基準(zhǔn)目錄
@@character_set_database 默認(rèn)數(shù)據(jù)庫使用的字符集
@@datadir 數(shù)據(jù)庫存儲的地方
@@expire_logs_days 二進(jìn)制日志自動刪除的天數(shù),默認(rèn)是0,表示"沒有自動刪除"
@@group_concat_max_len 允許group_concat()函數(shù)結(jié)果的最大長度
@@log_error 錯誤日志的位置
@@lower_case_file_system 該變量說明是否數(shù)據(jù)目錄所在的文件系統(tǒng)對文件名的大小寫敏感.
ON說明對文件名的大小寫不敏感,OFF表示敏感
@@lower_case_table_names 如果設(shè)置為1,表名用小寫保存到硬盤上,并且表名比較時不對大小寫敏感.
如果設(shè)置為2,按照指定的保存表名,但按照小寫來比較
@@plugin_dir 插件目錄的路徑
@@tmpdir 保存臨時文件和臨時表的目錄
@@tmp_table_size 如果內(nèi)存內(nèi)的臨時表超過該值,MySQL自動將它轉(zhuǎn)換為硬盤上的MyISAM表
@@sql_mode 當(dāng)前服務(wù)器的sql模式
@@tx_isolation 默認(rèn)事務(wù)隔離級別。默認(rèn)值為REPEATABLE-READ
@@Connections 連接MySQL數(shù)據(jù)庫服務(wù)器的次數(shù)(不管成功還是失敗)
@@max_write_lock_count 最大寫鎖數(shù)量
@@old_passwords 是否啟用MySQL323加密方式(就是MySQL用戶密碼的hash是16位的)
@@Uptime 服務(wù)器已經(jīng)運(yùn)行的時間
其中我感覺basedir/version_compile_os/log_error/group_concat_max_len這四個變量的作用很大,大家看上面的注視
group_concat_max_len這個變量涉及到group_concat()的返回字符長度,所以在使用group_concat()來注射時候要注意長度的限制.
tips:group_concat()函數(shù)的利用如下
url and 1=2 union select 1,group_concat(schema_name),3,4 from information_schema.schemata
這樣的話,就可以把當(dāng)前用戶中建立數(shù)據(jù)庫名全部顯示出來,在注射表名、字段名、字段屬性都可以使用,這樣的話又省了不少體力活
同時group_concat()還可以繞過不能使用limit的現(xiàn)實(shí),當(dāng)然不嫌累的話,可以使用"!="的形式來繞過limit的限制
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|