SQL 注入的观测

搭建靶场

拉取镜像并启动 sqli-lab 容器

首先,通过 Docker 拉取并启动 sqli-lab 容器:

shell 复制代码
docker run -dt --name sqli-lab -p 80:80 acgpiano/sqli-labs:latest

启动完成后,你应该能够访问 http://localhost

安装数据库

访问 http://localhost/sql-connections/setup-db.php 以安装 SQL 注入实验数据库。

访问注入实验页面

接着,访问以下 URL 进入 SQL 注入实验页面:

arduino 复制代码
http://localhost/Less-1/

进行 SQL 查询

尝试访问:

bash 复制代码
http://localhost/Less-1/?id=1

这时,页面会发起 SQL 查询,展示相应内容:

设置服务器和数据库日志

进入容器

为了进一步观察日志和数据库查询,进入 sqli-lab 容器:

shell 复制代码
docker exec -it sqli-lab bash

查看 Apache 访问日志

在容器内,使用以下命令查看 Apache 的访问日志:

shell 复制代码
tail -f /var/log/apache2/access.log

进入 MySQL 并开启日志功能

接下来,我们将进入 MySQL,开启通用查询日志以观察执行的 SQL 查询。首先进入 MySQL:

shell 复制代码
mysql -u root

然后执行以下命令开启日志功能:

mysql 复制代码
mysql> SET global general_log = 1;
mysql> SET global log_output = 'FILE';
mysql> SET global general_log_file = '/var/lib/mysql/general.log';
mysql> SHOW VARIABLES LIKE 'general_log%';

这些命令将开启通用查询日志并将其输出到文件 /var/lib/mysql/general.log

查看 MySQL 日志

执行以下命令查看 MySQL 的查询日志:

shell 复制代码
tail -f /var/lib/mysql/general.log

观测 SQL 注入实验

使用 sqlmap 进行 SQL 注入测试

最后,使用 sqlmap 工具进行 SQL 注入测试,获取数据库中的数据。执行以下命令:

shell 复制代码
sqlmap -u http://localhost/Less-1?id=1 --dump --batch

成功执行后,你将看到数据库中被泄露的数据:

通过 Apache 和 MySQL 日志,你可以清楚地观察到 SQL 注入攻击如何通过 id 参数注入并执行 SQL 查询:

shell 复制代码
tail -f /var/log/apache2/access.log
tail -f /var/lib/mysql/general.log
相关推荐
学习中的DGR9 小时前
[GXYCTF2019]Ping Ping Ping 1和[SUCTF 2019]EasySQL 1新手解题过程
sql·安全·web安全·网络安全·php
上海云盾商务经理杨杨9 小时前
付费网站的攻防战:2026年,如何破解并抵御爬虫攻击
网络·安全
夜勤月9 小时前
给AI装上“文件之手”:深入解析MCP文件系统服务的安全沙箱与读写实践
人工智能·安全
飞函安全11 小时前
飞函:为政企沟通加上“安全锁“
安全
weixin_4624462311 小时前
使用 jsr:@langchain/pyodide-sandbox 构建 Python 安全沙箱(完整入门教程)
python·安全·langchain·sandbox
猿码优创12 小时前
过滤境外ip和域名访问的解决方案
网络·网络协议·tcp/ip·安全·阿里云
九河云15 小时前
纺织印染“数字色差仪”:光谱+AI模型一次调色成功省染料12%
大数据·人工智能·安全·机器学习·数字化转型
KKKlucifer15 小时前
数据安全服务的技术深耕与场景适配:行业实践全景解析
网络·安全
虹科网络安全16 小时前
艾体宝方案|人工智能如何重塑威胁检测与身份安全
人工智能·安全
2301_7807896617 小时前
2025年UDP洪水攻击防护实战全解析:从T级流量清洗到AI智能防御
服务器·网络·人工智能·网络协议·安全·web安全·udp