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

 计算机专业类课程

 实验报告

 课程名称:计算机系统与网络安全技术

 学

 院:计算机科学与工程学院

 专

 业:信息安全

 学生姓名:白读四年

 学

 号:201005555555

 指导教师:来说

 评

 分:

 日

 期:

 实 验 六

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

 二、实验目的:

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

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

 三、实验原理:

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

 四、实验内容:

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

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

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

 五、实验环境与设备:

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

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

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

 局域网环境。

 六、实验方法和步骤:

  1、配置服务器

 JDK的安装。安装完成JDK后,需要对环境变量进行设置。例如若安装路径为C:\jdk1.6.0(当然其他路径也可以)。

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

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

 新建:设置JAVA_HOME。新建系统环境变量JAVA_HOME,将变量值设置为C:\jdk1.6.0。

 Apache web服务器的安装。安装完成后需要将网站的代码包SqlAttack放在webapps目录下。

 MySQL数据库的安装。

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

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

 安装完成数据库后安装Navicat for mysql,即图形化界面,以方便操作。

 删除已有连接,新建连接localhost(注意正确输入root口令),数据库sqlattack,以及表userInfo,其中表的字段包括id, name, pwd(注意字段类型、主键设置)。(注意数据库名、表名和字段名的大小写)

 2.配置客户机

 如果未实施过SQL注入的话,第一步先把IE菜单→工具→Internet选项→高级→显示友好HTTP错误信息前面的勾去掉。否则不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。

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

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

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

 提示字符串::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注入攻击成功

 七、实验结论和总结

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

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

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

推荐访问:计算机专业 课程 实验 报告