使用sqlmap对数据库进行指纹识别

沟渠

我有MySQL 5.1.58,并且执行了以下命令以使用sqlmap对数据库进行指纹识别

python sqlmap.py -d "mysql://root:password@localhost:3306/northwind" --fingerprint'

输出是

[12:26:35] [INFO] the back-end DBMS is MySQL
[12:26:35] [INFO] actively fingerprinting MySQL
[12:26:35] [INFO] executing MySQL comment injection fingerprint
back-end DBMS: active fingerprint: MySQL >= 5.1.12 and < 5.5.0
           comment injection fingerprint: MySQL 5.1.58

首先,什么是评论注入?

然后,我还打印了包含此类查询的有效负载

SELECT (CASE WHEN (9427=9427/*!50158 AND 7430=2815*/) THEN 1 ELSE 0 END)

为我返回0,并且

SELECT (CASE WHEN (9427=9427/*!50159 AND 7430=2815*/) THEN 1 ELSE 0 END)

返回1。

我知道50158与我的数据库版本相对应,但是为什么我在第一种情况下得到0,而在第二种情况下得到1?

沟渠

我在https://dev.mysql.com/doc/refman/8.0/en/comments.html中找到了答案

MySQL Server支持C样式注释的某些变体。这些使您能够通过使用以下形式的注释来编写包含MySQL扩展但仍可移植的代码:

/*! MySQL-specific code */

在这种情况下,MySQL Server会像处理其他任何SQL语句一样解析并执行注释中的代码,但是其他SQL Server将忽略这些扩展。例如,MySQL服务器在以下语句中识别出STRAIGHT_JOIN关键字,而其他服务器则不能:

SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...

如果在!之后添加版本号!字符,仅当MySQL版本大于或等于指定的版本号时,才执行注释中的语法。以下注释中的KEY_BLOCK_SIZE关键字仅由MySQL 5.1.10或更高版本的服务器执行:

CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据从生物指纹识别设备保存到数据库-考勤系统

使用Wi-Fi强度信号进行指纹识别

如何对Unix系统进行指纹识别

Android指纹识别

使用Spring Boot对数据库进行错误查询

设备指纹识别(Android和iOS)

Android:音频匹配(音频指纹识别)

Xamarin的指纹识别(1:N)

在加载到数据库或使用数据库之前对数据进行规范化?

使用指纹识别单个 Android 设备上的不同用户

无法使用 Beanshell 脚本对数据库进行 HTTPS 调用以写入数据

json使用doubleqoutes PHP / MYSQL对数据库中的存储数据进行编码

使用RSQLite时,对数据库中的数据进行日期更改会发生什么?

如何按天对数据库表数据进行分组并使用html表创建日历?

Vert.x使用BLOB和Hibernate对数据库数据进行分块回答

Laravel使用where子句对数据库中的数据进行排序

我无法使用neDB数据库按字母顺序对数据进行排序

如何对数据库中的数据进行分组

Django - 对数据库或数据进行操作

在Laravel上对数据库中的数据进行计数

如何使用生物特征指纹读取器开发指纹数据库

休眠:无法使用外键对数据库表进行采石

使用Hibernate对数据库查询进行递归以获取分层结果-Java

使用传单 esri 插件对数据库中的地址名称进行地理编码

如何使用实体框架对数据库中的嵌套集合进行计数

使用sqlite和C ++实际对数据库表进行排序的最佳方法?

使用数千列对数据库进行规范化-设计建议

使用 Django 中的标题按字母顺序对数据库进行排序

Jenkins声明性管道:如何在不存档的情况下对文件进行指纹识别?