SQL 注入观测实验总结

实验概述
本文详细介绍了如何搭建SQL注入观测环境,通过设置服务器和数据库日志来观察SQL注入攻击的全过程。

实验步骤详解

1. 环境搭建
• 拉取并启动sqli-lab容器:


  docker run -dt --name sqli-lab -p 80:80 acgpiano/sqli-labs:latest
  

启动后可通过http://localhost访问

• 安装数据库:

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

• 访问注入实验页面:

访问http://localhost/Less-1/进入SQL注入实验页面

2. 基础SQL查询测试
• 尝试访问http://localhost/Less-1/?id=1

• 页面会发起SQL查询并展示相应内容


3. 日志设置与观测
• 进入容器:


  docker exec -it sqli-lab bash
  

• 查看Apache访问日志:


  tail -f /var/log/apache2/access.log
  

• 配置MySQL日志:

1. 进入MySQL:

     mysql -u root
     

2. 开启通用查询日志:

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

• 查看MySQL日志:


  tail -f /var/lib/mysql/general.log
  

4. SQL注入测试
• 使用sqlmap进行注入测试:


  sqlmap -u http://localhost/Less-1?id=1 --dump --batch
  

成功执行后可获取数据库中的数据

• 实时观测注入过程:

通过同时查看Apache访问日志和MySQL查询日志,可以清晰观察到:
• 攻击如何通过id参数注入

• 恶意SQL查询如何在数据库中执行


实验价值
该实验完整展示了:
1. SQL注入漏洞环境的搭建方法
2. 服务器和数据库日志的配置方式
3. SQL注入攻击的实际执行过程
4. 如何通过日志分析攻击行为

通过此实验,可以深入理解SQL注入的攻击原理和防御重要性。
 
 
Back to Top