SQL中的and、or

2023-11-13

在sql查询语句中长用到and和or,它们在用的时候有些需要注意的地方

不管在一项表达式中有多少个and或or,它是将前一个表达式看作一项,and与or后的所有表达式看做一项。

and的前后都为真的时候才为真,取交集
or有一个为真,即为真,取并集

 select * from users where 1=1;			# 1=1 即全集

在这里插入图片描述

 select * from users where id=1;

在这里插入图片描述

select * from users where id =1 or 1=1 and 1=1 or user_name ="";

执行顺序:

  1. 第一个出现的逻辑运算符是or,所有取得是并集
  2. 所有结果该有id=1的一项
  3. 1=1 and 1=1 or user_name ="",第一个出现的and,取交集
  4. 1=1取全集
  5. 1=1 or user_name ="",or取并集,1=1为真,取全集,所有user_name =""根本不会去判断,所以这一表达式 取全集
  6. 1=1 and 1=1 or user_name ="" → 1=1 and 全集,为全集
  7. id =1 or 1=1 and 1=1 or user_name ="" → id=1 or 全集,取并集,所有最后结果应为全集

在这里插入图片描述

  select * from users where id =1 or 1=1 and 1=2 or user_name ="ccc";
  1. 1=2 or user_name =“ccc”,1=2为假,取并集,为user_name =“ccc”
  2. 1=1 and 1=2 or user_name =“ccc” → 1=1 and user_name =“ccc” 取交集,为user_name =“ccc”
  3. id =1 or 1=1 and 1=2 or user_name ="ccc"→id=1 or user_name =“ccc”,取并集,最后结果显示id=1和user_name ="ccc"这两项数据

在这里插入图片描述select * from users where id='1' or 1=1 and user_name='' or 1=1;

  1. user_name=’’ or 1=1取并集,为全集
  2. 1=1 and user_name=’’ or 1=1→1=1 and 1=1 为全集
  3. id=‘1’ or 1=1 and user_name=’’ or 1=1→id=‘1’ or 1=1取并集,最后输出应该为全集

在这里插入图片描述

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

SQL中的and、or 的相关文章

  • 基于错误信息的SQL盲注

    何谓盲注 在SQL注入基础一文中介绍了SQL注入的基本原理 可以轻易注入的原因是知道SQL拼接代码是怎么写的 很多情况下 很难甚至无法知道对方的SQL拼接语句是怎么写的 这里情况下需要做尝试 分析代码是采用何种拼接结构 然后再写个万能注入公
  • BUUCTF WEB笔记之[极客大挑战2019] EasySQL、LoveSQL、BabySQL、HardSQL

    小白一个 记录一下解题过程 如有错误请指正 一 EasySQL 1 这里我们使用一句话万能密码就可以了 记得加上 1 or 1 1 2 登录就可以拿到flag 二 LoveSQL 网页里说用sqlmap是没有灵魂滴 但是还是手痒试了一下 发
  • LESS-23 LESS-25 LESS-25a

    LESS 23 源码 以此可知可以通过报错注入等方式 语法 mixed preg replace mixed pattern mixed replacement mixed subject int KaTeX parse error Exp
  • 【网络运维与安全岗位】月薪2.5w,您还不知道的前景!

    一 为什么学网络安全 标重点 1 市场巨大 每年各安全厂商收入高达400亿左右 随着5G的发展 万物互联时代 市场将进一步扩大 2 薪资高 网安人才的匮乏 用人开出招聘薪资往往高于求职者的预期 3 靠能力说话 在网络安全专业 专业技能竞争力
  • sqli-labs:less-2(数字型报错注入)

    贴上源代码
  • sqlmap --os-shell 使用方法

    一 burp suite抓包 如上图所示 红框处很明显是一个传参点 我们就在这个页面抓包 抓到包之后将内容保存到桌面的1000 txt文件下 二 sqlmap跑包 打开sqlmap跑包 python sqlmap py r C Users
  • sqli-labs(31-40)

    人过留名 雁过留声 人生天地间 凡有大动静处 必有猪头 Less 31 源码分析 和 Less 29 相似 就是参数使用双引号 括号引用了 注入的时候注意闭合即可 Less 32 源码分析 check addslashes 转义的字符有 反
  • SQL注入原理-万能密码注入

    一 学习目的 1 理解 万能密码 原理 2 学习 万能密码 的使用 二 实验环境 本机 192 168 1 2 目标机 192 168 1 3 三 举例说明 1 输入一个存在漏洞的网站 例如 http 192 168 1 3 8009 2
  • Web开发常见安全问题及解决

    Web攻击动机 恶作剧 关闭Web站点 拒绝正常服务 篡改Web网页 损害企业名誉 免费浏览收费内容 盗窃用户隐私信息 例如Email 以用户身份登录执行非法操作 从而获取暴利 以此为跳板攻击企业内网其他系统 网页挂木马 攻击访问网页的特定
  • iwebsec靶场 SQL注入漏洞通关笔记8- 大小写过滤注入

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1 数字型注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2 字符型注入 宽字节注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL
  • SQL注入之报错注入的一些随笔

    0x00 序言 关于报错注入的话虽然我在我之前的文章里面写了一些 但是sql注入的姿势实在是太多了 之前写过的payload不全也不系统 今天抽出时间来总结一下 ps 关于报错注入的原理和使用的基本函数我在我之前的文章 SQLI LABS修
  • 基于Sqli-Labs靶场的SQL注入-23~24关

    目录 Less23 注释符被过滤的情况下注入 爆破数据库名 爆破表名 爆破列名 爆破字段值 23关小结 Less24 二次注入 二次注入理解及原理 修改管理员账户密码 总结 Less23 注释符被过滤的情况下注入 首先我们进入23关 可以发
  • 实验吧——加了料的报错注入

    coding utf8 import requests import re def denglu username password 设置代理 用于调试过程中抓包分析 proxies http http localhost 9008 htt
  • python脚本实现sql时间盲注

    这里用sqli labs master第10关举例 1 爆数据库长度 coding utf 8 import requests import datetime import time 获取数据库名长度 def database len fo
  • sqli-labs Less-4

    本系列文章使用的靶场环境为sqli labs 环境下载地址 https github com Audi 1 sqli labs 持续跟新 一直到通过此靶场为止 1 判断注入类型 index php id 1 单引号回显正常 双引号会报错 然
  • 基于Sqli-Labs靶场的SQL注入-1~4关

    less 1 Less4联合注入讲解 目录 less 1 基于字符型 单引号 注入点的联合注入 注入类型判断 猜解数据库中字段数 爆破数据库库名以及版本号 爆破数据库中的表名以及数据库安装路径 爆破某张表中的列名以及当前数据库的用户名 查询
  • 从入门到入土:[SEED-Lab]-SQL注入攻击

    此博客仅用于记录个人学习进度 学识浅薄 若有错误观点欢迎评论区指出 欢迎各位前来交流 部分材料来源网络 若有侵权 立即删除 本人博客所有文章纯属学习之用 不涉及商业利益 不合适引用 自当删除 若被用于非法行为 与我本人无关 SEED Lab
  • 【超详细】POST注入(Less-11)、Cookie注入(Less-20)、二次注入(Less-24)、宽字节注入(Less-32)

    本博文仅用于信息安全防御教学 请遵守中华人民共和国网络安全法 目录 本博文仅用于信息安全防御教学 请遵守中华人民共和国网络安全法 POST注入 Cookie注入 二次注入 宽字节注入 POST注入 需要知道的一些知识 所谓POST注入指的是
  • sqli-labs解题大法29 ~40

    Less 29 堆叠查询 在一条语句之后加上分号 然后接下一条语句 可以一次执行多条语句 order by 排序 可以 联合查询 可以 参考Less 1 Background 6 服务器 两层 架构 http www cnblogs com
  • 【SQL注入-15】自动化注入案例—以sqli-labs-less9为例(利用sqlmap工具)

    目录 1 前言 2 自动化注入案例 以sqli labs less9为例 2 1 实验平台 2 2 注入前准备 2 3 判断注入点及注入类型 2 3 1 自动判断注入点及注入类型 2 3 2 手动判断注入点及注入点类型 2 4 爆库名 2

随机推荐

  • jackson的jar包下载

    没必要去csdn的下载频道去付付费下载 这里有最全最新的Jackson的jar包资源 点我即可 评论有朋友说链接失效了 因为现在工作内容与java无关 不知道地址正确与否 但各位仍可一试 更新后的链接
  • Selenium快速入门

    目录 一 Selenium简介 二 Selenium组成 三 Selenium特点 四 Selenium使用 导入pom依赖 下载浏览器驱动 创建一个测试类 获取网页数据 1 Class选择 driver findElement By cl
  • Android平台和java平台 DES加密解密互通程序及其不能互通的原因

    网上的demo一搜一大堆 但是 基本上都是一知半解 包括我 为什么呢 我在尝试分别在两个平台加密的时候 竟然发现Android DES 加密和java DES加密的程序不能互通 就是加密的结果不一样 更不要说Android平台的加密输入作为
  • JAVA内存模型与JVM内存模型的区别

    JAVA内存模型与JVM内存模型的区别 直接进入正题 JAVA内存模型 Java内存模型规定所有的变量都是存在主存中 每个线程都有自己的工作内存 线程堆变量的操作都必须在工作内存进行 不能直接堆主存进行操作 并且每个线程不能访问其他线程的工
  • 计算机网络(互联网组成、计算机通信方式、电路、报文、分组交换、主要性能指标)

    互联网的组成 边缘部分 由主机组成 这部分是用户直接使用的 核心部分 由网络和路由器组成 边缘部分 计算机之间通信 主机A和主机B进行通信 实际上是指 主机A的某个进程和主机B上的另一个进程进行通信 或简称为 计算机之间通信 计算机的进程
  • Python数据库操作手册

    数据库的操作在现在的Python里面已经变得十分的好用 有了一套API标准 下面的就是讲讲如何的去使用这套框架定义 此框架包含以下部分 模块接口 连接对象 游标对象 DBI辅助对象 数据类型与定义 如何实现的提示 从1 0到2 0的变化 例
  • APP上架需要的准备和流程

    一 上架iOS应用市场前的准备 1 选择适合自己的苹果开发者账号 1 个人账号 Individual 费用99美金一年 该账号在App Store销售者只能显示个人的ID 比如zhitian zhang 单人使用 个人账号只能有一个开发者
  • 一篇学会Swagger2(集成knife4j)

    目录 一 Swagger2简介 1 前言 2 Open API是什么 3 Swagger简介 3 1 特性 3 2 组件 二 knife4j 三 内容 3 1 依赖 3 2 配置类 3 3 Controller层添加注解 3 4 测试 sw
  • Apache Tomcat如何高并发处理请求

    介绍 作为常用的http协议服务器 tomcat应用非常广泛 tomcat也是遵循Servelt协议的 Servelt协议可以让服务器与真实服务逻辑代码进行解耦 各自只需要关注Servlet协议即可 对于tomcat是如何作为一个高性能的服
  • make,makefile,make install,make clean,cmake,gcc(转)

    1 gcc是GNU Compiler Collection 就是GNU编译器套件 也可以简单认为是编译器 它可以编译很多种编程语言 括C C Objective C Fortran Java等等 2 当你的程序只有一个源文件时 直接就可以用
  • Mail command failed: 502 Invalid paramenters错误

    from要配置自己qq响应的邮箱
  • vue安装了babel-polyfill ie依旧无法适配

    上一篇写到安装babel polyfill 插件来适配ie浏览器 链接如下 https blog csdn net qq 43469899 article details 102969776 有些小伙伴会发现尽管你是配好了我上一篇的那些部分
  • HightCharts双y轴+x时间轴

    公司布置完成图表 使用HightCharts显示 根据时间显示探头点数据 由于探头分为两种数据属性 一种是温度 单位 一种是湿度 单位 所以需要使用双纵轴显示 加上横轴使用date属性 需要对date进行formart 上代码 myCont
  • linux修改日期时间

    Linux机器上的时间比较复杂 有各式各样的时钟和选项等等 机器里有两个时钟 硬件时钟从根本上讲是CMOS时钟 而系统时钟是由内核维护的 1 修改硬件时钟的可以使用下面的方法 你就可以用它来随时更新你的硬件时间 命令为 hwclock ad
  • 计算机组成原理笔记

    文章目录 一 计算机的基本组成 二 总线 2 1 总线控制 三 主存储器 3 1 RAM 3 2 存储器与CPU相连 3 3 存储器校验 3 4 提高存储器访问速度 3 5 cache 四 输入输出系统 4 1 I O接口 4 2 程序中断
  • 【狂神说Java】SpringBoo

    作者简介 CSDN内容合伙人 信息安全专业在校大学生 系列专栏 添砖加瓦 狂神说JAVA系列笔记 新人博主 欢迎点赞收藏关注 会回访 个人格言 舞台再大 你不上台 永远是个观众 平台再好 你不参与 永远是局外人 能力再大 你不行动 只能看别
  • Flutter Dialog模态框使用及自定义Dialog

    自定义dialog插件 用来弹出确认取消提示框 或者自定义模态框 自定义类 import package flutter material dart class dialogUtil 通用显示确定按钮框 static showConfirm
  • UART串口协议

    通用异步收发传输器 Universal Asynchronous Receiver Transmitter 通常称作UATR 是一种异步收发传输器 将数据由串行通信与并行通信间做传输转换 作为并行输入称为串行输出的芯片 UART是一种通用串
  • Python3.8的下载与安装

    一 介绍 Python由荷兰数学和计算机科学研究学会的吉多 范罗苏姆 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python提供了高效的高级数据结构 还能简单有效地面向对象编程 Python语法和动态类型 以及解释型语言的本质
  • SQL中的and、or

    在sql查询语句中长用到and和or 它们在用的时候有些需要注意的地方 不管在一项表达式中有多少个and或or 它是将前一个表达式看作一项 and与or后的所有表达式看做一项 and的前后都为真的时候才为真 取交集 or有一个为真 即为真