SQL注入攻击原理与防护方法实验报告.pdfVIP

  • 0
  • 0
  • 约5.83千字
  • 约 20页
  • 2026-02-06 发布于北京
  • 举报

SQL注入攻击原理与防护方法实验报告.pdf

SQL注入

什么是SQL注入:通过在表单中或者是url中提交一些特殊的字符串,然后提交给

,拼凑成一个完整的可以执行的sql语句,从而达到目的。

1.POST

实验原理

通过表单提交的数据过过滤,直接使用,造成sql语句改变其原意,从而产生sql

注入。所有有表单提交的地方都会有。以用户登录为例来说明,可以使用万能和万能用

户名来实现。

实验环境

a.安装Xampp、Wamp、PhpStudy等任意一款PHP集成环境;

b.把sql项目文件移动到站点根目录下;

c.将sql文件通过navicat、PhpMyAdmin等任意一款数据库管理工具导入MySQL数据库;

实验步骤

展现

a.万能用户名:用户名输入xxxor1#,输入任意字符,就可以成功进入;

b.万能:用户名输入任意字符,输入xxxor1,就可以成功进入;

以上步骤皆可绕过用户名、成功进入,首页界面显示如下:

前端代码:

后端代码:

防护方法

处理方式:转义用户输入;有两种实现方式:

a.使用php中的addslashes函数,站在php的角度(本次选择此方式防止);

b.使用php中的mysql扩展函数mysql_real_escape_string来转义,站在mysql的角度;

防护步骤

1.安装Xampp、Wamp、PhpStudy等任意一款PHP集成环境(集成环境已安装,此步可省略);

2.把sql_no项目文件移动到站点根目录下;

3.将sql文件通过navicat、PhpMyAdmin等任意一款数据库管理工具导入MySQL数据库(数

据库已导入,此步可省略)。

防护代码

前端代码:

后端代码:

防护效果

a.万能用户名(例:xxxor1#);

b.万能(例:xxxor1);

以上方式均不能绕过用户名和进入;

2.Get

实验原理

通过url地址传递的参数过过滤,直接使用,造成sql语句改变其原意,从而产生

sql注入。

展示

a.在浏览器地址栏输入IP:端/文件/index.php/Home/Index/index.html?id=8or1

就可以查看所有的记录,(例:

or1)

b.打开浏览器,在地址栏输入IP:端/文件/index.php/Home/Index/index.html?id=8

unionselect1,2,version(),4,user(),6,7,8,9,database(),11,12,13,14,15,16,17,18,

19,20,21就可以查看到数据库版本、数据库用户名、数据库名称等信息。(例:

unionselect

1,2,version(),4,user(),6,7,8,9,database(),11,12,13,14,15,16,17,18,19,20,21)

前端代码:

后端代码:

安全防护

id=8or1,其中8or1是一个字符串,不是整型,可以将其转成整型;在php中将一个

字符串转成整型有很多种种方式,列举常见两种:

a.强制转换,面类型名强转,php有一个函数intval()(本次选择此方式防止)。

b.隐式转换,让其参与运算,+0即可。

防护步骤

前端代码:

后端代码:

防护效果

a.查看所有的记录(例:

or1)

b.爆出数据库版本,用户名,数据库名(例:

文档评论(0)

1亿VIP精品文档

相关文档