找到SQL注入之后怎么判断数据库类型呢?
兄弟们晚上好,马上今年国护就要开始了,在座的各位老鸟最近也都在项目上忙吧哈哈AWA,想跟大家交流一下,大家再渗透测试的过程中是如何区分不同数据库类型的呢?毕竟现在市面上的数据库有很多种,Oracle、Mysql、PostgreSQL、SqlServer、MSSQL等等,各位大神都是通过什么方法区分这些数据库的呀?
我先分享:可以直接根据ip对应的端口来区分,但是一般站库分离,所以我这个方法貌似就没鸟用了,除此之外我猜测可以通过一些不同数据库相应特有的函数来区分,但是上面所说的一些关系型数据库函数都差不太多,还有一种就是从回显的报错信息来看,不过遇到盲注怎么办,哈哈哈,我自己跟自己都矛盾了,请各位大神赐教!
我先分享:可以直接根据ip对应的端口来区分,但是一般站库分离,所以我这个方法貌似就没鸟用了,除此之外我猜测可以通过一些不同数据库相应特有的函数来区分,但是上面所说的一些关系型数据库函数都差不太多,还有一种就是从回显的报错信息来看,不过遇到盲注怎么办,哈哈哈,我自己跟自己都矛盾了,请各位大神赐教!

评论20次
我直接选择去问公司的DBA
帖子好水。脚本语言aspx的mssql,php的mysql
怎么区分sqlmap已经给你写在xml里了,无法区分大多数是因为waf或者禁止了子查询以及能识别的函数比如version, 你能想到的安全设备也想到了这个时候就要你自己去fuzz积累了,通过语法或者非常见独有函数去区分细节上你还要去判断是什么结构上的注入点,什么版本的库才好去打0day不能总想白嫖,实在不行就找蓝队朋友打包这几年的日志自己分析分析别人playload是如何打的
如果存在注入的话,已经能确定可以执行数据库函数的情况下,可以使用一些常用的函数判断,比如说:mssql、oracle没有if、sleep函数,如果if和sleep函数可以用的话,那大概率mysql,而oracle和mssql数据库的区分,可以用decode函数,oracle专用,另外就是根据用户函数和数据库函数判断,mssql数据库可以使用user_name()和db_name(),其他数据库就不行。其实还有很多函数可以区分,可以自己在本地安装常见的数据库进行测试下