sql注入之一次艰难的绕过-三层防护(oracle)
打开: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 加入单引号,然后就报错:
我们可以采用显错注入。首先,我们来获取数据库名:
然后发现,又被拦截。虽然是意料之中,但是还是想说一句:我勒个擦。
经过测试发现拦截了utl_inaddr.get_host_name函数。众所周知,mysql可以用/*!information_schema*/.SCHEMATA 此语法进行绕过测试。但是oracle是肯定不支持此语法的。不信我们试试:
可以看到,执行失败,语法是错误的。我们不要灰心。
此处,我们思维就需要进行改变,我们不能像这种形式:/*!information_schema*/.SCHEMATA
但是可以这一种。information_schema./*!*/SCHEMATA
然后进行尝试:
成功绕过取得sys库。
sql注入之一次艰难的绕过-三层防护(oracle)的更多相关文章
- [转]高级SQL注入:混淆和绕过
############# [0×00] – 简介[0×01] – 过滤规避(Mysql)[0x01a] – 绕过函数和关键词的过滤[0x01b] – 绕过正则表达式过滤[0×02] – 常见绕过技术 ...
- 初探SQL注入
1.1注入语句(通过时间注入函数) 数据库名称 localhost:8080/ScriptTest/userServlet?username='union SELECT IF(SUBSTRING(cu ...
- SQL注入技术专题—由浅入深【精华聚合】
作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23569276来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 不管用什么语言编写的Web应用 ...
- 十大关系数据库SQL注入工具一览
摘要:众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL工具可帮助管理员及时检测存在的漏洞. BSQL Hacker ...
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说... root@xi4ojin:~# cd ...
- 10个SQL注入工具(转载)
众所周知,SQL注入攻击是最为常见的Web应用程序攻击技术.同时SQL注入攻击所带来的安全破坏也是不可弥补的.以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞. BSQL Hacker 1 ...
- SQL注入学习资料总结
转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html 什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Lang ...
- 关于SQL注入,你应该知道的那些事
戴上你的黑帽,现在我们来学习一些关于SQL注入真正有趣的东西.请记住,你们都好好地用这些将要看到的东西,好吗? SQL注入攻击因如下几点而是一种特别有趣的冒险: 1.因为能自动规范输入的框架出现,写出 ...
- [转载] 我的WafBypass之道(SQL注入篇)
我的WafBypass之道(SQL注入篇) Web安全 作者:先知技术社区 2016-11-23 7,566 [本文转自安全脉搏战略合作伙伴先知技术社区 原帖地址 安全脉搏编辑huan97 ...
随机推荐
- VS2015 (C/C++) 生成的程序,不能在server2008上运行
项目本来是为Linux下运行做的,但是客户环境需要在windows下运行,幸好用的一些库是跨平台的. 于是用vs2015编译. 然后就发现在2008上却运行时库,装了2015的运行时库后, 在运行,就 ...
- Halcon一日一练:图像拼接技术
图像拼接技术就是针对同一场景的一系列图片,根据图片的特征,比如位置,重叠部分等,拼接成一张大幅的宽视角的图像. 图像拼接要求拼接后图像最大程度的与原图一致,失真尽可能的小,并且要尽量做到天衣无缝即没有 ...
- mac 上格式化磁盘出现MediaKit报告设备上的空间不足以执行请求的解决办法
1.问题描述: 我使用是一个2T移动硬盘,分了5个区 2.分析原因:因为mac OSX的日志式格式需要有EFI分区进行引导,而我的移动硬盘是没有EFI分区的,这样的话就会出现问题: 3.解决办法: 1 ...
- Android ADB Server启动失败
启动Android Stdio的时候报如下错误: Unable to create Debug Bridge: Unable to start adb server: error: could not ...
- Tensorflow中实现BN为什么需要加入这个额外依赖?见CS231N作业源码
batch normalization in tensorflow requires this extra dependency 为什么加上这两句? extra_update_ops = tf.get ...
- HDU - 1407 打表
思路:预处理10000以内所有数的三平方和即可. AC代码 #include <cstdio> #include <cmath> #include <algorithm& ...
- javascript 面向对象(多种创建对象的方式)
创建对象 第一种:基于Object对象 var person = new Object(); person.name = 'My Name'; person.age = 18; person.getN ...
- Python基础学习参考(六):列表和元组
一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素 ...
- 左连接条件与where条件的区别
Sql 查询语句应用左连接时的链接条件中经常加一些常量值在里面如: "On a.id= b.id and b.is_del =0 and b.is_old =1" 这种条件如果加在 ...
- Linux内核开发之将驱动程序添加到内核
驱动程序添加到内核 一.概述: 在Linux内核中增加程序需要完成以下三项工作: 1.将编写的源代码复制到Linux内核源代码的相应目录 2.在目录的Kconfig文件中增加新源代码对应项目的编译配置 ...