SQL注入:原理及示例讲解,配置mysql环境变量,pikachu靶场搭建

SQL注入原理

SQL注入(SQL Injection)是一种代码注入技术,攻击者通过将恶意的SQL代码插入到应用程序的输入字段中,诱使后台数据库执行这些恶意代码,从而对数据库进行未授权的操作。常见的操作包括获取敏感数据、篡改数据、删除数据,甚至执行数据库管理命令。

攻击流程

  1. 用户输入恶意数据:攻击者在Web页面的输入字段中输入特制的SQL代码。
  2. 应用程序构建SQL查询:应用程序将用户输入直接拼接到SQL查询字符串中。
  3. SQL查询执行:拼接后的SQL查询在数据库中执行,恶意代码也随之执行。
  4. 攻击效果显现:恶意代码可能会读取、修改、删除数据库中的数据,甚至控制整个数据库服务器

示例

现有数据表

idusernameemailphonejoin_date
1user1user1@example.com123-456-78902021-01-01
2user2user2@example.com987-654-32102021-02-01
3user3user3@example.com555-666-77772021-03-01
4
5user5user5@example.com111-222-33332021-04-01

后端查询语句

    $name=$_GET['name'];//这里的变量是字符型,需要考虑闭合$query="select id,email from member where username='$name'";

用户正常输入内容(user1)

SQL语句为

 $query="select id,email from member where username='user1'";

此时数据库会查找username字段为hello的数据,并返回对应的id与emali字段,经过前端处理展现

查询结果为

idemail
1user1@example.com

如果用户不是好人,输入非正常内容

' OR 1=1 #

 将用户输入与SQL语句进行拼接后得出

 $query="select id,email from member where username='' OR 1=1 #'";
select id,email from member where username='' OR 1=1 #'

sql语句解析

用户输入单引号与源代码中单引号形成闭合,拼接逻辑与语句,并在末尾使用#将多余代码进行注释

数据库查询数据时,会将所有可能的匹配项都进行检查而(username='' OR 1=1)条件恒成立,等同于没有任何匹配条件,匹配任何数据结果都为真,返回数据表中所有指定字段(id,emali)的数据

此时查询结果为

idemail
1user1@example.com
2user2@example.com
3user3@example.com
4
5user5@example.com

mysql系统环境变量搭建

1.控制面板->系统

                                2.高级->环境变量->系统变量,path->编辑

                            3.新建-浏览-选择(phpstudy-mysql-bin)目录

       4.打开cmd命令行输入mysql -uroot -proot进入sql编辑器

搭建皮卡丘靶场

将文件进行解压,放在网站根目录

1.修改数据库连接文件

2.访问皮卡丘网站,并点击初始化,根据步骤进行完成

3. 检查数据库

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知能行——考研数学利器

知能行使用体验全记录 首先,我先介绍一下自己,我是2018级的,2022年6月毕业,本科沈阳工业大学(双非),今年二战,专业课自动控制原理,数二英二,目标是江南大学控…

[书生·浦语大模型实战营]——第三节:茴香豆:搭建你的 RAG 智能助理

0.RAG 概述 定义:RAG(Retrieval Augmented Generation)技术,通过检索与用户输入相关的信息片段,并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇到的挑战, 如幻觉、知识过时和缺…

社交媒体数据恢复:聊天宝

请注意,本教程仅针对聊天宝应用程序,而非其他聊天软件。以下是详细的步骤: 首先,请确保您已经登录了聊天宝应用程序。如果您尚未登录,请使用您的账号登录。 在聊天宝主界面,找到您希望恢复聊天记录的对话框…

小明同学的考试分数统计:总分、平均分与方差计算进阶

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、原始方法介绍与问题发现 原始方法存在的问题 二、优化方案:使用列表简化代…

串口中断原理及实现

一、串口的原理 SM0、SM1——串行口工作模式 SM0SM1模式特点00模式0移位寄存器方式,用于I/O口扩展01模式18位UART,波特率可变10模式29位UART,波特率为时钟频率/32或/6411模式39位UART,波特率可变 TI、RI——发送、接收中断标志位 TITI0 允许发送>TI1 发送完成后…

【全网最全】2024电工杯数学建模A题54页A题保奖成品论文+配套代码

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片链接,那是获取资料的入口! 【全网最全】2024电工杯数学建模A题成品论文前三题完整解答matlabpy代码等(后续会更新成品论文)「首先来看看目前已有的资料&am…

出书,是「盖你自己的房子」你知道吗?

出书是「盖你自己的房子」 尊敬的出书盟友: 你好!我希望这封信能够激发您对出书和阅读的热情。 在当今信息爆炸的时代,每个人都有机会分享自己的故事、思想和知识。而书籍作为一种流传百年的媒体,依旧承载着无限的力量和影响力…

Java——接口后续

1.Comparable 接口 在Java中,我们对一个元素是数字的数组可以使用sort方法进行排序,如果要对一个元素是对象的数组按某种规则排序,就会用到Comparable接口 当实现Comparable接口后,sort会自动调用Comparable接口里的compareTo 方法…

C++的类和对象

C面向对象的三大特性:封装,继承,多态 万事万物皆可为对象,有其相应的属性和行为 一、封装 1.1 封装的意义 将属性和行为作为一个整体,表现生活中的事物 将属性和行为加以权限控制 在设计类的时候,属性…

Sql语句DQL操作 查询操作单表 多表 子表(嵌套)

DQL 查询语句 查询指定的列 **语法 : ** SELECT [查询列表] FROM 表名结果可以是:表格中的字段,常量,表达式,函数查询的结果是虚拟表格,不可以操作 是只读的可以对查询结果进行 算术运算( - * /);**特点: ** 查询的列表可以是:表中的字段,常量,表达式,函数查询的结果是一个虚…

深入理解 Spring 上下文(Context)层次结构

前言 在使用 Spring 框架进行应用程序开发时,Spring 上下文(Context)是一个非常重要的概念。Spring 上下文提供了一个环境,用于管理应用程序中的对象(通常称为 Bean)及其之间的依赖关系。在复杂的应用程序…

数据仓库与数据挖掘实验练习6-7(实验四2024.5.22)

tips: 列出虚拟环境:conda env list 激活虚拟环境:activate hi 进入jupyter-lab:jupyter lab 练习6 1. 处理字符串空格 发现问题: 使用 values 属性查看数据时,如果发现 Name 列没有对齐,很可能是 Name 左…

spring模块(三)Spring AOP(2)使用

一、demo 1、spring项目 &#xff08;1&#xff09;pom <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.13.RELEASE</version></dependency>&l…

0元入驻抖音小店,真的是好事吗?

大家好&#xff0c;我是喷火龙。 抖音小店去年推出0元入驻抖音小店个人店的政策&#xff0c;简而言之就是只要一张身份证就可以开店&#xff0c;不需要营业执照&#xff0c;也不需要交保证金。 很多人一听很心动&#xff0c;因为没有任何成本就可以开店&#xff0c;于是纷纷跑…

重新思考:Netflix 的边缘负载均衡

声明 本文是对Netflix 博客的翻译 前言 ​ 在先前关于Zuul 2开源的文章中&#xff0c;我们简要概述了近期在负载均衡方面的一些工作。在这篇文章中&#xff0c;我们将更详细地介绍这项工作的原因、方法和结果。 ​ 因此&#xff0c;我们开始从Zuul和其他团队那里学习&#…

Mac上如何安装低版本chrome浏览器

背景 为了排查项目上使用chrome低版本的兼容性问题&#xff0c;需要在本机【mac系统】上安装一个低版本的chrome浏览器。 不同版本的chrome下载地址 https://www.slimjet.com/chrome/google-chrome-old-version.php 下载后要记得你下载的旧版本的版本号&#xff0c;后面修改…

ICML 2024 | 北大、字节提出新型双层位置编码方案,有效改善长度外推效果

在这项工作中&#xff0c;我们利用语言序列的内在分段特性&#xff0c;设计了一种新的位置编码方法来达到更好的长度外推效果&#xff0c;称为双层位置编码&#xff08;BiPE&#xff09;。对于每个位置&#xff0c;我们的 BiPE 融合了段内编码和段间编码。段内编码通过绝对位置…

如何恢复未保存/误删除的Excel文档?

想象一下&#xff0c;您已经在一个非常重要的 Excel 上工作了几个小时&#xff0c;而您的计算机卡住了&#xff0c;您必须重新启动计算机。Excel 文件未保存/误删除&#xff0c;您只是因为忘记点击保存按钮而损失了数小时的工作时间。但是&#xff0c;当您意识到一小时前在 Exc…