解锁一些SQL注入的姿势

昨天课堂上布置了要去看一些sql注入的案例,以下是我的心得:

​​​​​​​ ​​​​​​​ ​​​​​​​

1.新方法

打了sqli的前十关,我发现一般都是联合查询,但是有没有不是联合查询的方法呢? 有!!

一般,我们都是这样,找到显示位,然后让前面报错,显示出后面的值!!!

但是如果union被过滤了呢,那我们就要考虑去不用union(首先我们的database名字是security

发现这样也是可以正常回显(意思就是数据库以s开头那么我们是不是就是可以逐一爆破出数据库甚至是用户

好方法,涨芝士了

2.直接爆出字段与数据

再看这一篇blog的时候,不得不感叹大佬的绕WAF的能力,以及想法都太强啦 来看 !!

这个大佬当时在一顿构造之后,发现都爆不出他的数据库,或者用户,于是他就转念一想

直接爆他的字段和数据🦹🦹🦹🦹

如果成功就是说明存在一个字段名字是user而且里面的有一个值是b

下面我们拿自己的sql来演示一下

假设我们有一个字段名字是username 我们直接查询id=1是可以看见的

但是如果我们猜到他的字段username呢?这样我们是不是就可以一个一个的爆出他的值

除了这个他还介绍了一些绕WAF的方式

  1. =号被拦截的话就用 <> like regexp 来bypass
  2. 空格被过滤就用+ %0a /**/ 来绕过
  3. 如果WAF正则匹配 use() 的话可以在user和()之间加入 /**/或者%0a
  4. database()被过滤? 试试schema()

又涨知识了,嘿嘿

3.多个轮子,你还能继续下去吗

我们的查询一般都是一个查询的,但是如果原本就是了联合查询呢?像这样

如果我们插入sql语句,你就会发现出现这样

这样,前面为假,or后面a=a是真的 但是code那里又是假的,所以or两边都是假的,恒为假

方法:开多几个轮子✌️✌️✌️👍

sql 复制代码
select * from table where id=' or 1=1 or '1'='1' and code=""

如果不报错,那么就说明中间1=1的作用起到了!!! 于是我们就可以从中间下手,进行注入

还有一些blog还没来的及看,等我看了一定补上嘻嘻

相关推荐
疯狂打码的少年22 分钟前
【数据库技术】关系模型基本概念(关系/属性/元组/键)
java·服务器·数据库·笔记
有梦想的骇客3 小时前
PyTorch学习笔记
pytorch·笔记·学习
Capricorn19883 小时前
个人知识库接入大模型频现“幻觉引用”?排查 RAG 溯源失效问题,解析知芽构建可信第三大脑的底层架构
大数据·论文阅读·人工智能·笔记·架构·论文笔记
陈年老古董3 小时前
深度学习入门笔记:从神经元到深度神经网络
人工智能·笔记·深度学习·神经网络·学习
疯狂打码的少年5 小时前
【数据库技术】关系完整性约束(实体/参照/用户定义)
运维·服务器·数据库·笔记
sunshine22 girl6 小时前
Angular7,9,学习笔记四 父子组件传值,组件之间传值
笔记·学习
蒸蒸yyyyzwd7 小时前
cpp选手秋招学习笔记 day18
笔记·学习
Hotchip_MEMS7 小时前
从“手工作坊”到“全自动贴装”:MEMS如何重塑雾化器制造流程
人工智能·笔记·物联网·电脑·制造
维克兜率天8 小时前
【维克】技术指标是什么:从均线到MACD的数学原理
人工智能·笔记·python·算法·量化
摇滚侠8 小时前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发应用 阅读笔记 2
java·spring boot·笔记