名站网址导航为大家提供关于数据库教程相关的教程网站知识。
正在看的ORACLE教程是:Oracle也有注入漏洞。近期,MSN、江民等知名网站相继受到了黑客的威胁和攻击,一时间网络上风声鹤唳。本报编辑部接到本文作者(炽天使)的电话,他详细讲述了发现国内最大域名提供商(以下简称“X网”)网站漏洞的经过。本报编辑部立即和X网的首席工程师进行了交流,确认了漏洞的真实性,该工程师也及时修补了该漏洞。Oracle经常用的开始执行命令大全集
1.forcing log switches, sql> alter system switch logfile;, 2.forcing checkpoints, sql> alter system checkpoint;, 3.adding online redo log groups, sql> alter database add logfile [group 4], sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m;, 4.adding online redo log members, sql> alter database add logfile member, sql> '/disk3/log1b.rdo' to group 1,, sql> '/disk4/log2b.rdo' to group 2;, 5.changes the name of the online redo logfile, sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log', sql> to 'c:/oracle/oradata/redo01.log';, 6.drop online redo log groups, sql> alter database drop logfile group 3;, 7.drop online redo log members, sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log';, 8.clearing online redo log files, sql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo';, 9.using logminer analyzing redo logfiles, a. in the init.ora specify utl_file_dir = ' ', b. sql> execute dbms_logmnr_d.build('oradb.ora','c:\oracle\oradb\log');, c. sql> execute dbms_logmnr_add_logfile('c:\oracle\oradata\oradb\redo01.log',, sql> dbms_logmnr.new);, d. sql> execute dbms_logmnr.add_logfile('c:\oracle\oradata\oradb\redo02.log',, sql> dbms_logmnr.addfile);, e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>'c:\oracle\oradb\log\oradb.ora');, f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters, sql> v$logmnr_logs);, g. sql> execute dbms_logmnr.end_logmnr; , 第二章:表空间管理, 1.create tablespaces, sql> create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m,, sql> 'c:\oracle\oradata\file2.dbf' size 100m minimum extent 550k [logging/nologging], sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0), sql> [online/offline] [permanent/temporary] [extent_management_clause], 2.locally managed tablespace, sql> create tablespace user_data datafile 'c:\oracle\oradata\user_data01.dbf', sql> size 500m extent management local uniform size 10m;, 3.temporary tablespace, sql> create temporary tablespace temp tempfile 'c:\oracle\oradata\temp01.dbf', sql> size 500m extent management local uniform size 10m;, 4.change the storage setting, sql> alter tablespace app_data minimum extent 2m;, sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);, 5.taking tablespace offline or online, sql> alter tablespace app_data offline;, sql> alter tablespace app_data online;, &nbs,[1] [2] [3] [4] [5] [6] [7] 下一页, sql> alter tablespace app_data read only|write;, 7.droping tablespace, sql> drop tablespace app_data including contents;, 8.enableing automatic extension of data files, sql> alter tablespace app_data add datafile 'c:\oracle\oradata\app_data01.dbf'size 200m, sql> autoextend on next 10m maxsize 500m;, 9.change the size fo data files manually, sql> alter database datafile 'c:\oracle\oradata\app_data.dbf'resize 200m;, 10.Moving data files: alter tablespace, sql> alter tablespace app_data rename datafile 'c:\oracle\oradata\app_data.dbf', sql> to 'c:\oracle\app_data.dbf';, 11.moving data files:alter database, sql> alter database rename file 'c:\oracle\oradata\app_data.dbf', sql> to 'c:\oracle\app_data.dbf'; [NextPage],第三章:表, 1.create a table, sql> create table table_name (column datatype,column datatype]....), sql> tablespace tablespace_name [pctfree integer] [pctused integer], sql> [initrans integer] [maxtrans integer], sql> storage(initial 200k next 200k pctincrease 0 maxextents 50), sql> [logging|nologging] [cache|nocache], 2.copy an existing table, sql> create table table_name [logging|nologging] as subquery, 3.create temporary table, sql> create global temporary table xay_temp as select * from xay;, on commit preserve rows/on commit delete rows, 4.pctfree = (average row size - initial row size) *100 /average row size, pctused = 100-pctfree- (average row size*100/available data space), 5.change storage and block utilization parameter, sql> alter table table_name pctfree=30 pctused=50 storage(next 500k, sql> minextents 2 maxextents 100);, 6.manually allocating extents, sql> alter table table_name allocate extent(size 500k datafile 'c:/oracle/data.dbf');, 7.move tablespace, sql> alter table employee move tablespace users;, 8.deallocate of unused space, sql> alter table table_name deallocate unused [keep integer], 9.truncate a table, sql> truncate table table_name;, 10.drop a table, sql> drop table table_name [cascade constraints];, 11.drop a column, sql> alter table table_name drop column comments cascade constraints checkpoint 1000;, alter table table_name drop columns continue;, 12.mark a column as unused, sql> alter table table_name set unused column comments cascade constraints;, alter table table_name drop unused columns checkpoint 1000;, alter table orders drop columns continue checkpoint 1000, data_dictionary : dba_unused_col_tabs, 第四章:索引
发 现
10月18日,笔者手上的项目做完以后,便和网上的朋友天南海北地聊天。听到朋友网站的开张,心里也是非常的羡慕。
什么时候我才能拥有自己的主机和域名……想到申请主机和域名,笔者自然想到了X网(在中国太有名嘛^_^)。顺手打开其主页,突然看到了主页右上角的会员登录界面,这让笔者“贼”心又起——要是能发现什么漏洞就好了,反正现在也没什么事情。
笔者拿出端口扫描相关工具扫了一下X网的 站点服务器,竟然什么漏洞都没有发现,真是郁闷!转念一想,毕竟X网也做了10多年了,这些大型网站 站点服务器的安全措施恐怕不会少——映射,外加IDS和防火墙,补丁肯定也早打全了,说不定还有蜜罐程序等着您呢!
过了不久,笔者突然发现了一个情况,X网原来是用ASP写的。前段时间ASP MSSQL的注入漏洞可是闹得沸沸扬扬,不少网站都吃了苦头。这里会有这类问题吗?不管了,先试一试再说。笔者随手找了一个购买虚拟主机的页面:???.cn/hAS_Client/buy/vir_host/vir_ host1_SB.asp?PackageID=10341。先用经典的具体相关方法来测试了一下,返回类型均为不匹配: ‘CDbl'错误。X网用的什么网站数据库呢?笔者在参数后面加上一个单引号,再提交请求,页面返回了一段报错信息。
原来用的是Oracle,一般Oracle网站数据库出现这样的返回错误,都可能存在漏洞的。这和MSSQL未闭合引号的返回错误差不多,不过MSSQL出现这样的错误提示,咱们几乎可以肯定存在注入漏洞了,而Oracle则要再进一步确定。
确 认
以下几步为入侵的基础,非常重要。咱们分别在IE中输入:
???.cn/hAS_Client/buy/vir_ host/vir_host1_SB.asp?PackageID=10341‘and 0<>(select count(*) from all_tables) and '1‘='1;
???.cn/hAS_Client/buy/vir_ host/vir_host1_SB.asp?PackageID=10341‘and 0<>(select count(*) from user_tables) and '1‘='1;
???.cn/hAS_Client/buy/vir _host/vir_host1_SB.asp?PackageID=10341‘and 0<>(select count(*) from user_tab_columns) and '1‘='1;
以上这些是笔者猜测的Oracle的系统表:all_tables,user_tables和user_tab_col umns。假如如果没有,就没戏了。
没想到页面全都返回成功,这说明笔者猜测的系统表都是存在的,同时也说明提交的SQL数据库语句,程序已经做了处理。
至此,笔者确认X网存在注入漏洞。
利 用
网站数据库可以说是一个站点的重中之重,通过笔者发现的这个漏洞,咱们完全可以访问并修改网站数据库中的所有数据。不光是用户账号,对于所有存在网站数据库中的数据,咱们都可以获取并修改。
在开放Public组的UTL_File权限的情况下,其实还可以利用Union查询、读取站点服务器上的网站网站文件,这点和PhP MYSQL注入漏洞中的load_file()有些相似,当然也可以执行Update之类的。只是在Oracle注入漏洞研究上,笔者还是个菜鸟,没能实现插入数据和进行更高级的注入攻击。在整个测试漏洞的过程中,由于利用了NBSI的后台扫描功能和WPE,大大提高了效率。
现在,笔者已经可以得到X网所有用户的信息,只要登录进去,就能轻易更改他们的域名指向。假如如果笔者是一个恶意攻击者,只要把某个商业站点的域名指向指到自己制作的一个假站点上,那么用户登录这个商业站点的账号信息就毫无安全可言了。其实此漏洞和域名劫持有些相似,只要您是X网的用户,笔者肯定就能黑了您的站点。对于X网来说,其所有的业务都有可能受到影响,数据可以被任意获取窜改。
其他的一些危害也是显而易见的,就不再做具体说明了。
修 补
要防止这类注入漏洞其实很简单,只要对URL中提交的参数进行严格的过滤,去除一些比如单引号、SQL关键字等字符即可。具体做法:利用程序检查提交的URL中问号后的字符串,一旦发现单引号、分号、SQL关键字等特殊字符,马上就 会跳转到一个自定义的Error页面。
对于X网的网管来说,解决这个问题其实花的时间不到5分钟。另外,X网也应加强一下网站数据库中的数据安全,至少加个密吧!
顺便提一下,国内还有很多站点都存在这样的注入漏洞。
编 后
自从经历了许许多多蠕虫和病毒的攻击后,大家普遍对站点服务器的安全十分关注,有些站点甚至只开了80端口。如今在站点服务器上运行的具体相关代码的安全,就显得格外重要了。具体相关代码上一个小小的疏忽,往往就可能造成全局的崩溃。
今天有网站数据库的注入漏洞,明天又将出现什么呢?
关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。