计算机专业类课程实验报告

计算机专业类课程

实验报告

课程名称:计算机系统与网络安全技术 学 院:计算机科学与工程学院 专 业:信息安全

学生姓名:白读四年

学 号:201005555555

指导教师:来说

评 分:

日 期:

计算机专业类课程实验报告

实 验 六

一、实验名称:SQL注入攻击实验

二、实验目的:

(1)掌握SQL注入基本手段

(2)了解WEB站点的脆弱性

三、实验原理:

SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,可能被入侵很长时间管理员都不会发觉。相当一部分程序员编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些用户想得知的数据,这就是所谓的SQL Injection,即SQL注入。

四、实验内容:

(1) 服务器安装所需软件:编译环境—JAVA JDK,数据库—MySQL,WEB服务器—APACHE Tomcat

(2) 设置客户机浏览器,登录服务器。

(3) 根据登录页面返回信息,构造攻击字符串作为密码,实施攻击。

五、实验环境与设备:

1. 两台PC机,一台作为服务器,一台作为客户端。

2. PC机安装WindowsXP/2000操作系统。

3. 服务器安装数据库和WEB服务器。

4. 局域网环境。

六、实验方法和步骤:

1、配置服务器

(1) JDK的安装。安装完成JDK后,需要对环境变量进行设置。例如若安

装路径为C:\jdk1.6.0(当然其他路径也可以)。

a. path变量的设置。在系统变量里找到path变量,选择编辑,在path变量值的最前面加上C:\jdk1.6.0\bin;。

b. 新建:classpath环境变量的设置。在系统变量栏选择新建classpath,将变量值设置为 .; C:\jdk1.6.0\lib\tools.jar; C:\jdk1.6.0\lib\dt.jar。 c. 新建:设置JAVA_HOME。新建系统环境变量JAVA_HOME,将变量值设置为C:\jdk1.6.0。

(2) Apache web服务器的安装。安装完成后需要将网站的代码包SqlAttack

放在webapps目录下。

(3) MySQL数据库的安装。

a. 首先检查本机是否已安装Mysql,如果已安装需要先卸载再安装新的Mysql数据库(一定要卸载以前安装的版本,否则在输入密码的时候总是会提示输入之前的密码)。由于网站代码中对数据库的访问信息(数据库名称、密码、数据表名称)是事先固定的,所以需要对数据库密码和表按照下述要求统一进行设置。

b. 数据库的root password统一设置为GGLP。

c. 安装完成数据库后安装Navicat for mysql,即图形化界面,以方便操作。 d. 删除已有连接,新建连接localhost(注意正确输入root口令),数据库sqlattack,以及表userInfo,其中表的字段包括id, name, pwd(注意字段类型、主键设置)。(注意数据库名、表名和字段名的大小写)

2.配置客户机

(1) 如果未实施过SQL注入的话,第一步先把IE菜单→工具→Internet选项

→高级→显示友好HTTP错误信息前面的勾去掉。否则不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。

(2) 用浏览器登录WEB服务器:http://IP地址:8080/SqlAttack/login.jsp

(3) 进入登录界面后,进行攻击。

(4) 掌握攻击原理后,尝试其他的攻击。

提示字符串::a’or ‘t’=‘t,为什么?这个字符串使我们的网站登陆校验SQL语句出现了什么样的变化,从而完成了攻击?你是否可以构造另外的字符串?

七、实验结果和分析:

进行登入:

登入成功:

计算机专业类课程实验报告

创建账户和密码

机器上设置之后,其他用户可以在局域网内对进行设置后的机器进行随意的访问!由于数据语句设计上的漏洞原本的SQL字符串被填为strSQL = "SELECT * FROM users WHERE (name = '' OR '1'='1') and (pw = '' OR '1'='1');"实际上运行的SQL命令会变成下面这样: strSQL = "SELECT * FROM users;

所以SQL注入攻击成功

七、实验结论和总结:

1、 SQL注入攻击是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏。

2、 SQL命令可查询、插入、更新、删除等,命令的串接。而以分号字符为不同命令的区别。(原本的作用是用于SubQuery或作为查询、插入、更新、删除……等的条件式)

3、 通过本次实验,对SQL注入攻击的原理有了一定的了解和认识,通过配置相应的主机,另一位同学通过输入攻击的语句最终完成了SQL注入攻击。同时了解到由于数据库语句设计的不完善最终将导致严重的危害,通过老师的讲解以及PPT上的内容对SQL注入的防范措施有了一定的认识。

 

第二篇:实验报告_计算机专业

实验1 建立并输出一个线性链表

1.实验目的

了解单链表的结构特点、描述方法及有关概念,掌握单链表建立、插入、输出的基本操作。

2.实验内容与要求

通过键盘输入线性表的n个任意类型的数据元素,首先建立一个具有n个链结点的线性链表,奖输入数据依次存放于链结点的数据域中,然后按照与输入相反的次序输出各数据元素。

3.要点、说明、算法介绍

单链表:线性表的链式存储结构中每个结点只有一个指针域的链表称为单链表。 单链表的结点结构定义为:

typedef struct node

{

ElemType data;

struct node *link;

}Lnode,*LinkList;

4.程序

5.收获、体会

实验2 约瑟夫问题

1.实验目的

了解循环链表的结构特点、描述方法及有关概念,掌握循环链表的建立、插入、删除等基本操作。

2.实验内容与要求

约瑟夫问题:已经n个人。。。。。。课本P52例题2.5

3.要点、说明、算法介绍

循环链表:。。。。。。。。。。。。。

单链表的结点结构定义为:

typedef struct node

{

ElemType data;

struct node *link;

}Lnode,*LinkList;

算法实现:

。。。。。。。。。。。。

4.程序

5.收获、体会

实验3 n阶魔方

1.实验目的

了解掌握数组的基本操作。

2.实验内容与要求

所谓n阶魔方是一种填数游戏。。。。课本P89例题3.6.2

3.要点、说明、算法介绍

介绍算法实现。。。课本P90

4.程序

5.收获、体会

实验4迷宫问题

1.实验目的

了解掌握栈的基本操作。

2.实验内容与要求

完成一个二维迷宫。。。。课本P117例题4.4.5

3.要点、说明、算法介绍

介绍算法实现。。。课本P118

4.程序

5.收获、体会

实验5二叉树中序遍历

1.实验目的

了解掌握二叉树的遍历操作。

2.实验内容与要求

课本P371。。。的要求

3.要点、说明、算法介绍 介绍算法实现。。。课本P183

4.程序

5.收获、体会

实验6图的删除

1.实验目的

了解掌握图的删除操作。

2.实验内容与要求

课本P371。。。的要求

3.要点、说明、算法介绍 介绍算法实现。。。课本P243

4.程序

5.收获、体会

实验7连续顺序文件的查找

1.实验目的

了解掌握顺序文件的基本查找方法。

2.实验内容与要求 课本P372。。。的要求

3.要点、说明、算法介绍 介绍算法实现。。。课本P287

4.程序

5.收获、体会

实验8

1.实验目的

了解掌握常用排序算法的实现。

2.实验内容与要求 课本P371。。。的要求

3.要点、说明、算法介绍 介绍算法实现。。。课本第十章

4.程序

5.收获、体会

内排序

相关推荐