Oracle 学习
基础知识
-- 查看所有角色 select * from dba_roles; -- 查看当前用户被激活的全部角色 select * from session_roles; -- 查看当前用户被授予的角色 select * from user_role_privs; -- 查看当前用户是否为DBA select t.DEFAULT_ROLE from user_role_privs t where t.granted_role='DBA'; -- 查看当前用户所拥有的全部权限 select * from session_privs; -- 查看当前用户的系统权限 select * from user_sys_privs; -- 查看当前用户的表级权限 select * from user_tab_privs; -- 查看某个用户所拥有的系统权限 select * from dba_sys_privs; -- 查看角色(只能查看登陆用户拥有的角色)所包含的权限 select * from role_sys_privs; -- 查看用户的java权限(用户名必须大写) select * from user_java_policy where grantee_name='SCOTT'; -- 设置输出列宽,优化 sqlplus 交互式命令行的输出 COL TYPE_NAME FOR A30; COL NAME FOR A30; COL ACTION FOR A10; select TYPE_NAME, NAME, ACTION from user_java_policy where grantee_name = 'TEST4';-- 进入交互式命令行 sqlplus -- 创建一个的用户 create user <用户名> identified by <密码>; -- 创建一个 role create role <角色名>; -- 将 connect 和 create procedure 赋给 testrole grant connect,create procedure to <角色名>; -- 将testrole这个角色给用户test grant <角色名> to <用户名>; -- 这样我们可以将 testrole 给多个用户,修改权限时只需要添加/删除角色的权限即可,方便批量管理,类似Active Directory中的组 -- 使用 revoke 收回某个权限 revoke create procedure from <角色名>; -- 修改用户密码 alter user <用户名> identified by <密码>; -- 删除用户和角色 drop user <用户名> cascade; drop role <角色名>;
PL/SQL注入
Cursor注入
Lateral SQL注入
权限提升
SET_OUTPUT_TO_JAVA
GET_DOMAIN_INDEX_TABLES
LT.FINDRICSET
SDO_DROP_USER_BEFORE
命令执行
DBMS_XMLQUERY
创建存储进程执行命令
DBMS_JAVA.RUNJAVA
Web层面的利用
Last updated
