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

举报
_nojava 发表于 2022/12/01 14:01:44 2022/12/01
【摘要】 (1)基于布尔的盲注(2)基于时间的盲注(3)基于报错注入(4)联合查询注入(5)堆查询注入。(6)宽字节注入。 布尔盲注的概念基本原理是:通过控制通过and连接起来的子句的布尔值,来控制页面的显示结果来判断and后子句的真实性。首先,既然是布尔盲注,那自然和布尔有关系(废话既然如此,就得回忆一下布尔是个什么玩意。在我的印象里,布尔贼简单,不是对就是错。那么,他是怎么应用在SQL注入中的。首...

(1)基于布尔的盲注

(2)基于时间的盲注

(3)基于报错注入

(4)联合查询注入

(5)堆查询注入。

(6)宽字节注入。

布尔盲注的概念

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

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

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

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

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

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

基于

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

“用户名”&”密码“

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

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

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

条件1 and 条件2 or 条件3

那么就会产生如几种情况

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

and 语句为真 , or语句后面为真–>真

and 语句为假, or语句后面为假–>假

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

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

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

Select * from admin where username='admin' and password='ad0min'(删除0

我们做些修改:

在密码处输入

’ or 1#

那么这个语句就变成了

Select * from admin where username='admin' and password=' ' or 1=1#

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

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

抽根烟去,有空继续说

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。