官术网_书友最值得收藏!

2.2 MySQL注入基礎

2.2.1 MySQL系統函數

MySQL有很多系統函數。通過查詢這些函數,攻擊者可以獲取系統參數、數據庫安裝路徑等敏感信息,在root權限下還可以讀取所有數據庫用戶的密碼。一般使用“select 函數名稱;”進行查詢。

· system_user():查詢系統用戶名,執行結果如圖2-2所示。每個查詢語句都要以分號結束,否則執行將會失敗。

圖2-2 查詢系統用戶名

· user():查詢當前用戶名。以root用戶登錄,執行結果是一致的。

· current_user():查詢當前使用的用戶名。

· session_user():查詢連接數據庫的用戶名。

· database():查詢使用的數據庫名。如果沒有使用usedatabasename,則顯示為空。

· version():查詢MySQL數據庫版本。例如,“5.0.90-community-nt”與“select@@GLOBAL.VERSION;select@@version;”的查詢效果相同。

· load_file():讀取本地文件。

· @@datadir:讀取數據庫路徑。

· @@basedir:獲取MySQL的安裝路徑。

· @@version_compile_os:獲取操作系統版本。

完整的命令格式如下。

2.2.2 收集Windows和Linux文件列表

Windows 和 Linux 操作系統常常將某些敏感信息存儲在特定的文件中。如果攻擊者發現網站中存在 SQL 注入漏洞,且能夠利用 2.2.1 節提到的 load_file()函數讀取文件,就能夠通過提前收集的Windows和Linux敏感文件的默認路徑獲取想要的信息。下面列舉部分文件名及默認路徑。

1.Windows文件

· c:\boot.ini:Windows Server 2008以下版本使用。

· c:\windows\php.ini:其中存儲了PHP配置信息。

· c:\windows\my.ini:MySQL配置文件,記錄管理員使用過的MySQL用戶名和密碼。

· c:\winnt\php.ini.

· c:\winnt\my.ini.

· c:\MySQL\data\MySQL\user.MYD:其中存儲了MySQL.user表中的數據庫連接密碼。

· c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini:其中存儲了虛擬主機網站的路徑和密碼。

· c:\Program Files\Serv-U\ServUDaemon.ini.

· c:\windows\system32\inetsrv\MetaBase.xml:IIS配置文件。

· c:\windows\repair\sam:其中存儲了初次安裝Windows操作系統時使用的密碼。

· c:\Program Files\Serv-U\ServUAdmin.exe:其中存儲了Serv-U 6.0以前版本的管理員密碼。

· c:\Program Files\RhinoSoft.com\ServUDaemon.exe.

· c:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\*.cif:其中存儲了pcAnywhere的登錄密碼。

· c:\Program Files\Apache Group\Apache\conf\httpd.conf或C:\apache\conf\httpd.conf:Windows操作系統的Apache文件。

· c:\Resin-3.0.14/conf/resin.conf:使用JSP開發的網站的Resin文件。

· c:\Resin\conf\resin.conf.

· d:\APACHE\Apache2\conf\httpd.conf.

· c:\Program Files\MySQL\my.ini.

· c:\windows\system32\inetsrv\MetaBase.xml:IIS的虛擬主機配置文件。

· c:\MySQL\data\MySQL\user.MYD:其中存儲了MySQL的用戶密碼。

2.Linux/UNIX文件

· /usr/local/app/apache2/conf/httpd.conf:Apache2默認配置文件。

· /usr/local/apache2/conf/httpd.conf.

· /usr/local/app/apache2/conf/extra/httpd-vhosts.conf:其中存儲了虛擬網站設置。

· /usr/local/app/php5/lib/php.ini:其中存儲了PHP相關設置。

· /etc/sysconfig/iptables:其中存儲了防火墻規則策略。

· /etc/httpd/conf/httpd.conf:Apache配置文件。

· /etc/rsyncd.conf:同步程序配置文件。

· /etc/my.cnf:MySQL配置文件。

· /etc/redhat-release:其中存儲了系統版本信息。

· /etc/issue.

· /etc/issue.net.

· /usr/local/app/php5/lib/php.ini:其中存儲了PHP的相關設置。

· /etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf:Linux Apache虛擬主機配置文件。

· /usr/local/resin-3.0.22/conf/resin.conf:Resin 3.0.22配置文件。

· /usr/local/resin-pro-3.0.22/conf/resin.conf:同上。

· /etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf:Linux Apache虛擬主機配置文件。

2.2.3 常見的MySQL注入攻擊方法

1.手工注入

在MySQL手工注入中,攻擊者主要利用MySQL自帶的information_schema數據庫獲取和利用相關信息。information_schema數據庫保存了MySQL服務器上所有數據庫的相關信息,例如數據庫名、數據庫中的表、表列的數據類型與訪問權限等。簡單地說,在一臺 MySQL 服務器上,到底有哪些數據庫、各個數據庫中有哪些表、每張表的字段類型是什么、各個數據庫要有什么權限才能訪問等信息,都保存在information_schema數據庫里面。

在進行手工注入時,攻擊者會通過構造SQL查詢語句獲取想要的信息,進行查詢、寫入文件、讀取文件、執行命令等操作。

2.工具注入

工具注入是指將手工注入自動化,通過編程實現數據庫信息獲取、數據表內容獲取等。攻擊者利用工具注入可以大幅提高效率,快速獲取需要的信息。

防止工具注入在網站安全維護工作中是非常重要的。

主站蜘蛛池模板: 樟树市| 子长县| 宝兴县| 洞口县| 新平| 平原县| 蒙城县| 通许县| 泰兴市| 延安市| 富顺县| 宜昌市| 和静县| 新津县| 恩施市| 普安县| 抚宁县| 天气| 贡山| 探索| 朔州市| 邛崃市| 南通市| 枝江市| 临沂市| 涞源县| 瑞昌市| 都昌县| 瑞安市| 库伦旗| 汕头市| 连山| 长春市| 吴旗县| 隆林| 环江| 柞水县| 建水县| 家居| 运城市| 齐河县|