前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL注入天书笔记(1)布尔盲注

SQL注入天书笔记(1)布尔盲注

作者头像
吉师散养基地
发布2022-11-20 13:47:45
3470
发布2022-11-20 13:47:45
举报
文章被收录于专栏:我奏是太阳

前言

🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 🍁个人主页:被吉师散养的职业混子 🫒每日emo:怀揣着。。 🍂相应专栏:CTF专栏

按照执行效果来分类:

(1)基于布尔的盲注

(2)基于时间的盲注

(3)基于报错注入

(4)联合查询注入

(5)堆查询注入。

(6)宽字节注入。

布尔盲注的概念

基本原理是:通过控制通过and连接起来的子句的布尔值,来控制页面的显示结果来判断and后子句的真实性。

首先,既然是布尔盲注,那自然和布尔有关系(废话

既然如此,就得回忆一下布尔是个什么玩意。

在我的印象里,布尔贼简单,不是对就是错。那么,他是怎么应用在SQL注入中的。

首先举个栗子,假设有个登录界面要求你输入账号名密码,如果你只知道账户,该怎么登入呢?

此处方法仅用于介绍布尔盲注,若有人因此损害他人利益,与我无关

基于

如果你晓得账号密码的话,登录过程中,对浏览器进行抓包会得到cookie是以

“用户名”&”密码“

这样子的形式进行传递的,

这里介绍SQL语法关于and/or的一个逻辑:

已知and的优先级大于or,所以

代码语言:javascript
复制
条件1 and 条件2 or 条件3

那么就会产生如几种情况

and 语句为真 , or语句后面为假-->真 and 语句为真 , or语句后面为真-->真 and 语句为假, or语句后面为假-->假 and 语句为假 , or语句后面为真-->真

那么如果我们在服务器获取输入信息时做点手脚。

在原本的时候,本来应该是

代码语言:javascript
复制
Select * from admin where username='admin' and password='ad0min'(删除0)

我们做些修改:

在密码处输入

' or 1#

那么这个语句就变成了

代码语言:javascript
复制
Select * from admin where username='admin' and password=' ' or 1=1#

根据之前的解释推出,前面的and虽然由于pa"ssw"ord = ' '为"假(删除双引号),但后面的or 又能将语句赋为真。

这就是经典的万能密码漏洞,由此可衍生出多种类似方法,就是注释之间的变换或者单引号双引号之类的,不叭叭了。

抽根烟去,有空继续说

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 按照执行效果来分类:
  • 布尔盲注的概念
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档