目录
MySQL、SQLServer、Access、Oracle四种数据库应该是目前市面上最流行的数据库了。我们进行渗透测试,碰到最多的也是这几种数据库。本文就这几种数据库在注入时的相同点和不同的做一下统计。
注释符
- MySQL: 单行:# 、 -- 多行: /**/
- SQLServer:--
- Access:无注释符
- Oracle:单行: -- 多行: /**/
所以,除了Access无注释符外,其他三种数据库都有单行注释符:--
数据库端口
- MySQL: 3306
- SQLServer: 1433
- Access: 属于文件型数据库,所以不需要端口号
- Oracle:1521
数据库文件后缀名
- MySQL:数据文件:. myd 、索引文件:. MYI 、表定义文件:. frm
- SQLServer: .mdf
- Access:早期是 .mdb ,后来是 .accdb
- Oracle:.dbf 和 .ora
特有的数据库
- MySQL: information_schema
- Access:msysobjects
- SQLServer:sysobjects
- Oracle:dual
查看当前用户或权限
MySQL
查询当前用户
select user();
select substring_index(user(), '@', 1) ;
查询当前用户的权限
select * from mysql.user where user = substring_index(user(), '@', 1) ;
Access数据库是文件类型数据库,没有用户和权限的概念
SQLServer
判断是否是SA权限
select is_srvrolemember('sysadmin')
判断是否是db_owner权限
select is_member('db_owner')
Oracle
查看当前用户
select * from user_users;
查看当前用户拥有的角色
select * from session_roles;
查看当前用户拥有的权限
select * from session_privs;