防范SQL注入研究的课程设计

目录
一、 绪论 2
1、 研究背景 2
2、 研究目的和内容 2
二、 SQL注入攻击的简介 3
1、 SQL注入攻击的定义和背景 3
2、 SQl注入攻击的危害 3
2、 基于盲注的SQL注入攻击 4
3、 基于时间的SQL注入攻击 4
4、 堆叠SQL注入攻击 4
三、 SQL注入攻击的实现 5
1、 攻击测试环境 5
2、 目标机器的构建 5
3、 SQL 注入 6
4、 检索隐藏数据 7
5、 破怀应用逻辑 8
6、 检索数据库 9
7、 UNION 攻击 10
8、 盲 SQL 注入 11
9、 脚本说明 11
10、 脚本运行 12
四、 防范SQL注入攻击的方法 13
1、 输入验证 13
2、 参数化查询 13
3、 最小化数据库权限 13
五、 总结 15
参考文献 16
三、SQL注入攻击的实现

1、攻击测试环境

目标机器的环境 :虚拟机:VMware WorkStation 15 Pro
操作系统:Ubuntu 18.04 64 位
处理器内核总数:4
分配给虚拟机内存大小:8GB
编辑器:Vscode 1.42.1 mysql Ver 14.14 Distrib 5.7.30 PHP 7.2.24-0ubuntu0.18.04.4 (cli) Apache/2.4.29 (Ubuntu)
Python 3.7.3

2、目标机器的构建

这次攻击测试搭建的目标机器运行在虚拟机 VMware 上的 Ubuntu18.04,然后进行配置LAMP 环境。首先,通过"sudo apt-get installapache2"命令安装 apache2;然后,输入命令"sudoapt-getinstallmysql-server mysql-client",安装 MySQL,修改用户密码; 最后,安装 PHP,输入命令"sudo apt-get install php7.0 libapache2-mod-php" , “sudo apt-get install php7.2-mysql”,并进行相应的配置操作。在本地创建数据库 secure_info,创建表users,之后的所有操作将对 users 表进行攻击。采用 PHP 进行网页编程,main.php 为目标网站主页面,选择 low,improved 两个选项,进入不同安全等级的网页,其中 low 安全等级最低,对输入的用户 ID 不进行任何过滤操作,improved则对输入数据进行特殊字符过滤和是否为数字的检测。将projet 移至/var/www/SQL_injection/下,即可访问网站。访问网址是http://192.168.254.147/SQL_injection/main.php# ,其中 192.168.254.147是Ubuntu18.04 的 IPv4 地址,下图3-1是数据库secure_info中的users表的全部信息(其中cancel 列,值为 1,表示已被注销,查询时不显示,值为 0,表示未注销):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/newlw/article/details/130968846