欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

SQL注入漏洞挖掘Oracle Advanced Support系统

来源:本站整理 作者:佚名 时间:2017-08-31 TAG: 我要投稿

365天之前我在某个客户的一个外部环境中执行入侵渗透测试,任何外部环境渗透测试的重要步骤之一就是挖掘出可访问的WEB服务。nmap和EveWitness的结合会令这步骤变得更快,因为我们可以进行端口扫描 并且把这些结果以屏幕截图的形式导入到 EyeWitness中。当梳理完 EyeWitness提供的屏幕截图页面后,我发现了一个Oracle 高级支持服务。

虽然我之前从没听过Oracle Advanced Support,但是当我很快的google完之后,我了解到它似乎是一个允许oracle的技术支持在外部登入,并且在oracle系统环境下进行任何技术支持需要的操作的服务。有了这个信息之后, 我们可以将现有的web应用测试与它结合起来。
我们可以对这个应用开始进行一些简单的侦查,包括:
寻找已经被爆出的漏洞
用burp爬取应用
枚举常见的路径
查看可获取的页面的源码
幸运的是,我在主页的源码中发现了 一个包含资产目录清单的链接。

对于像这样一个未知的应用,目录列表是很有用的,它给我们了一些希望去发现一些很有趣 但不应该被访问到的东西 。果不其然的在搜寻每个目录之后,我偶然发现了以下的javascript文件:

让它变得更适合阅读一些

在Web渗透测试中,其中一个我喜欢的并且常常忽视的事情是查找应用中的javascript文件, 并且看看他们是否支持任何POST 或者是GET请求。
我们已经发现了一个叫做sql-service.js的javascript文件,这让我立刻在脑海中提高起警觉来。这个文件包含4个匿名函数其中三个t.getJSON方法的GET请求和一个t.post方法的POST请求。这些函数包含如下一些变量:
getSqlData
createNamedSql
getNamedSqlList
getSqlNameList
在这篇文章的剩余部分,我将提及匿名函数中的变量。
每个函数的根节点都位于/rest/data路径下。
接下来是将他们拆分之后的请求:
GET /rest/data/sql
POST /rest/data/sql
GET /rest/data/sql_list
GET /rest/data/sql_name_list
有了这些之后,开始拿出我最喜欢的代理工具:burp,看看会发生什么!
直捣黄龙
我首先尝试的是来自于getSqlData函数路径是/rest/data/sql的GET请求。我们也通过观察javascript发现这个请求需要附加一个参数,让我们在结尾加上”test”.
HTTP Request:
GET /rest/data/sql/test HTTP/1.1 Host: host Connection: close Accept: application/json;charset=UTF-8 Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8 Content-Type: application/json Content-Length: 0
HTTP Response:
HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 20 Connection: close Named SQL not found.
当我们把”test”加到请求url的末尾,服务器返回了404。同时服务器也返回了这样一个信息:Named SQL not found。如果我们尝试”test”之外的其他字符串,得到了同样的返回信息。我们把这个请求发到Burp 的 intruder模块,打算试图过一个目录列表字典来枚举潜在的参数名,看看是否能得到除了404之外的返回。但是有一个更简单的方法来找到合适的参数名。如果我们再次查看javascript,你会发现函数的名称给我们一些有价值的信息。我们在以下函数中发现了两个GET请求:getNamedSqlList 和 getSqlNameList.。我们刚才的请求返回的错误信息是 Named SQL not found error。让我们尝试针对getNamedSqlList函数的GET请求。
HTTP Request:
GET /rest/data/sql_list HTTP/1.1
Host: host
Connection: close
Accept: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Content-Type: application/json
Content-Length: 0
HTTP Response:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Connection: close
Content-Length: 243633
[{"id":1,"name":"sample","sql":"SELECT TIME,CPU_UTILIZATION,MEMORY_UTILIZATION FROM TIME_REPORT where TIME > :time","dataSourceJNDI":"jdbc/portal","privileges":[],"paramList":[{"id":36,"name":"time","type":"date-time","value":null}]},{"id":2,"name":"cpu_only","sql":"SELECT TIME,CPU_UTILIZATION FROM TIME_REPORT","dataSourceJNDI":"jdbc/portal","privileges":[],"paramList":[]},{"id":3,"name":"simple_param","sql":"SELECT TIME,CPU_USAGE FROM CPU_MONITOR WHERE CPU_USAGE  ?","dataSourceJNDI":"jdbc/portal","privileges":[],"paramList":[{"id":4,"name":"time","type":"string","value":null}]},{"id":10,"name":"tableTransferMethod","sql":"SELECT result_text, result_value FROM   MIG_RPT_TABLE_TRANSFER_METHOD WHERE  scenario_id = :scenario_id AND  package_run_id = :pkg_run_id AND engagement_id = :engagement_id","dataSourceJNDI":"jdbc/acscloud","privileges":[],"paramList":[{"id":5,"name":"scenario_id","type":"int","value":null},{"id":6,"name":"pkg_run_id","type":"string","value":null},{"id":7,"name":"engagement_id","type":"int","value":null}]},{"id":16,"name":"dataTransferVolumes","sql":"select RESULT_TEXT,\n           RESULT_VALUE\nfrom  MIG_RPT_DATA_TRANSFER_VOLUME\nwhere scenario_id = :scenario_id\nAND   package_run_id = :pkg_run_id\nAND   engagement_id = :engagement_id","dataSourceJNDI":"jdbc/acscloud","privileges":[],"paramList":[{"id":8,"name":"scenario_id","type":"int","value":null},{"id":9,"name":"pkg_run_id","type":"string","value":null},{"id":10,"name":"engagement_id","type":"int","value":null}]},{"id":17,"name":"dataCompressionPercentage","sql":"SELECT RESULT_TEXT,\n       RESULT_VALUE\nFROM   MIG_RPT_DATA_COMPRESSION_PCT\nWHERE  scenario_id = :scenario_id\nAND    package_run_id = :pkg_run_id\nAND engagement_id =

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载