找到SQL注入之后怎么判断数据库类型呢?

2024-05-14 18:39:57 20 1060
兄弟们晚上好,马上今年国护就要开始了,在座的各位老鸟最近也都在项目上忙吧哈哈AWA,想跟大家交流一下,大家再渗透测试的过程中是如何区分不同数据库类型的呢?毕竟现在市面上的数据库有很多种,Oracle、Mysql、PostgreSQL、SqlServer、MSSQL等等,各位大神都是通过什么方法区分这些数据库的呀?


我先分享:可以直接根据ip对应的端口来区分,但是一般站库分离,所以我这个方法貌似就没鸟用了,除此之外我猜测可以通过一些不同数据库相应特有的函数来区分,但是上面所说的一些关系型数据库函数都差不太多,还有一种就是从回显的报错信息来看,不过遇到盲注怎么办,哈哈哈,我自己跟自己都矛盾了,请各位大神赐教!

关于作者

小安23311篇文章104篇回复

评论20次

要评论?请先  登录  或  注册
  • TOP1
    2024-5-14 21:46

    我直接选择去问公司的DBA

  • TOP2
    2024-5-14 19:11

    帖子好水。脚本语言aspx的mssql,php的mysql

  • TOP3
    2024-5-14 20:39

    怎么区分sqlmap已经给你写在xml里了,无法区分大多数是因为waf或者禁止了子查询以及能识别的函数比如version, 你能想到的安全设备也想到了这个时候就要你自己去fuzz积累了,通过语法或者非常见独有函数去区分细节上你还要去判断是什么结构上的注入点,什么版本的库才好去打0day不能总想白嫖,实在不行就找蓝队朋友打包这几年的日志自己分析分析别人playload是如何打的

  • TOP4
    2024-5-17 14:46

    如果存在注入的话,已经能确定可以执行数据库函数的情况下,可以使用一些常用的函数判断,比如说:mssql、oracle没有if、sleep函数,如果if和sleep函数可以用的话,那大概率mysql,而oracle和mssql数据库的区分,可以用decode函数,oracle专用,另外就是根据用户函数和数据库函数判断,mssql数据库可以使用user_name()和db_name(),其他数据库就不行。其实还有很多函数可以区分,可以自己在本地安装常见的数据库进行测试下

  • 20楼
  • 19楼
    2024-5-31 08:32

    1. 通过语言和端口简单缩小范围 2. 测试一些常见语法和函数 3. 报错信息 4. 可以去portswigger的sql cheatsheet看一下

  • 18楼
    2024-5-30 13:33

    我直接选择去问公司的DBA

  • 17楼
    2024-5-23 14:10

    大部分都是看报错,要不就是尝试特定数据库的语句

  • 16楼
    2024-5-21 11:09

    你这个问题 还不如直接 甩给gpt 在渗透测试中,确定 SQL 注入漏洞后,进一步确定数据库类型通常需要一些技巧和经验。以下是一些常用的方法来判断数据库类型: 错误消息:在某些情况下,数据库的错误消息会直接告诉你数据库的类型。例如,MySQL 错误消息通常会包含 "MySQL" 字样。 SQL 语法差异:不同的数据库在 SQL 语法上存在差异。例如,MySQL 使用 LIMIT 语句来限制查询结果的数量,而 SQL Server 使用 TOP。 数据库特定的函数:尝试使用数据库特有的函数,如果它们被成功执行,那么可以确定数据库类型。例如,DATABASE() 是 MySQL 特有的函数。 数据库特定的存储过程:尝试调用数据库特有的存储过程,比如 xp_cmdshell 是 SQL Server 特有的。 数据库版本信息:如果能够执行 SELECT VERSION() 或类似的查询,这将返回数据库的版本信息,通常包含数据库类型。 时间延迟注入:通过时间延迟注入技术,可以尝试不同的数据库特有的查询,根据查询执行时间来判断。 数据库信息泄露:某些数据库可能允许查询 sys.databases(SQL Server)或 pg_database(PostgreSQL)等xi统表来获取数据库类型信息。 操作xi统命令执行:如果能够执行操作xi统命令,可以尝试执行特定于数据库的命令,比如在 SQL Server 中执行 dir 命令。 数据库指纹:使用自动化工具,如 sqlmap,它可以帮助识别数据库类型,甚至可以进一步利用 SQL 注入漏洞。 数据库配置文件:在某些情况下,数据库配置文件(如 MySQL 的 my.cnf 或 PostgreSQL 的 postgresql.conf)可能包含数据库类型的信息。 数据库特性:利用数据库的特性,比如 MySQL 的 INFORMATION_SCHEMA,可以帮助确定数据库类型。

  • 15楼
    2024-5-20 21:49

    居然还能找到sql注入,我已经两年没见过sql注入长啥样了

  • 14楼
    2024-5-20 19:17

    我也直接选择去问公司的DBA

  • 13楼
    2024-5-17 16:25

    我直接选择去问公司的DBA

  • 12楼
    2024-5-17 14:46

    如果存在注入的话,已经能确定可以执行数据库函数的情况下,可以使用一些常用的函数判断,比如说:mssql、oracle没有if、sleep函数,如果if和sleep函数可以用的话,那大概率mysql,而oracle和mssql数据库的区分,可以用decode函数,oracle专用,另外就是根据用户函数和数据库函数判断,mssql数据库可以使用user_name()和db_name(),其他数据库就不行。 其实还有很多函数可以区分,可以自己在本地安装常见的数据库进行测试下

  • 11楼
    2024-5-17 10:58

    从报错判断: 1. ORACLE ORA-01756:quoted string not properly terminated ORA-00933:SQLcommand not properly ended 2. MS-SQL Msg 170,level 15, State 1,Line 1 Line 1:Incorrect syntax near ‘foo Msg 105,level 15,state 1,Line 1 Unclose quotation mark before the character string ‘foo 3. MYSQL you have an error in your SQL syntax,check the manual that corresponds to you mysql server version for the right stntax to use near 'foo'' at line x

  • 10楼
    2024-5-16 20:36

    你都找到有注入了,这个还有什么疑问??

  • 9楼
    2024-5-15 13:47

    这个需要一定的预判能力,看破不说破

  • 8楼
    2024-5-15 08:19
    杀虫剂:

    帖子好水。脚本语言aspx的mssql,php的mysql

    1
    小安233:

    大佬你这回复也太水了,PHP Mysq。。。。。时代变了,PHP现在SQLite SQLserver,Oracle都是一堆一堆的,光靠自己的开发xi惯或者根据网站的编程语言已经无法分辨了。

    2
    杀虫剂:

    你都这样说了,那发这贴的意义是什么? 再牛的人也不能看一眼就知道用啥库吧。你说扫端口,那我这不也是主流搭配的一种方法?

    3

    当然,因此你现在不就已经把这个帖子存在的意义说出来了,正因为不能一眼看出来,所以我们才需要配合语句测试吧,那究竟如何测试呢,交给接下来回贴的大佬们了

  • 7楼
    2024-5-14 21:46

    我直接选择去问公司的DBA

  • 6楼
    2024-5-14 20:39

    怎么区分sqlmap已经给你写在xml里了,无法区分大多数是因为waf或者禁止了子查询 以及能识别的函数比如version, 你能想到的安全设备也想到了 这个时候就要你自己去fuzz积累了,通过语法或者非常见独有函数去区分 细节上你还要去判断是什么结构上的注入点,什么版本的库才好去打0day 不能总想白嫖,实在不行就找蓝队朋友打包这几年的日志自己分析分析别人playload是如何打的

  • 5楼
    2024-5-14 20:02

    比较常见的也就mysql,oracle sqlserver ,这3个payload都拿去试试,平时

  • 4楼
    2024-5-14 19:57

    mysql length database() mysql len db_name()还是有区别的哈

  • 3楼
    2024-5-14 19:46
    杀虫剂:

    帖子好水。脚本语言aspx的mssql,php的mysql

    1
    小安233:

    大佬你这回复也太水了,PHP Mysq。。。。。时代变了,PHP现在SQLite SQLserver,Oracle都是一堆一堆的,光靠自己的开发xi惯或者根据网站的编程语言已经无法分辨了。

    2

    你都这样说了,那发这贴的意义是什么? 再牛的人也不能看一眼就知道用啥库吧。 你说扫端口,那我这不也是主流搭配的一种方法?

  • 2楼
    2024-5-14 19:18
    杀虫剂:

    帖子好水。脚本语言aspx的mssql,php的mysql

    1

    大佬你这回复也太水了,PHP Mysq。。。。。时代变了,PHP现在SQLite SQLserver,Oracle都是一堆一堆的,光靠自己的开发xi惯或者根据网站的编程语言已经无法分辨了。

  • 1楼
    2024-5-14 19:11

    帖子好水。脚本语言aspx的mssql,php的mysql