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

SQL注入原理

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

攻击流程

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

示例

现有数据表

id username email phone join_date
1 user1 user1@example.com 123-456-7890 2021-01-01
2 user2 user2@example.com 987-654-3210 2021-02-01
3 user3 user3@example.com 555-666-7777 2021-03-01
4
5 user5 user5@example.com 111-222-3333 2021-04-01

后端查询语句

php 复制代码
    $name=$_GET['name'];

    //这里的变量是字符型,需要考虑闭合

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

用户正常输入内容(user1)

SQL语句为

php 复制代码
 $query="select id,email from member where username='user1'";

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

查询结果为

id email
1 user1@example.com

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

php 复制代码
' OR 1=1 #

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

php 复制代码
 $query="select id,email from member where username='' OR 1=1 #'";
php 复制代码
select id,email from member where username='' OR 1=1 #'

sql语句解析

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

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

此时查询结果为

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

mysql系统环境变量搭建

1.控制面板->系统

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

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

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

搭建皮卡丘靶场

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

1.修改数据库连接文件

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

3. 检查数据库

相关推荐
摇滚侠7 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试8 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
2501_937767169 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
silvamux_10 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
I Am a robert girl12 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒12 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
SelectDB12 小时前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB13 小时前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析
SelectDB13 小时前
Apache Doris + Vane:让多模态数据进入业务分析
大数据·数据库·数据分析
pjj1985415 小时前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse