SQL注入攻击实验报告

实验报告

(实验名称:SQL注入攻击)

一、实验目的

通过SQL注入攻击,掌握网站的工作机制,认识到SQL注入攻击的防范措施,加强对Web攻击的防范。

二、实验环境

描述实验开展所基于的网络环境,给出网络拓扑、IP地址、web服务器、客户机等信息。

宿主机(客户机):操作系统为Windows 10,IP为,在主机上安装虚拟化软件Vmware Player,在此基础上创建虚拟机并安装操作系统,进行网络配置,采用环回适配器,桥接模式,实现宿主机与虚拟机之间的网络通信,

虚拟机(Web服务器):操作系统为Windows XP,IP为,

本实验利用 windows 的 iis 服务搭建了一个有 SQL 注入漏洞的网站“ASP 新闻发布系统”,以该网站为目标,对其实施 SQL 注入攻击。

本实验所需工具如下:

IIS 是 Internet Information Server 的缩写,是微软提供的 Internet 服务器软件,包括 Web、FTP、Mail 等服务器,也是目前常用的服务器软件。版本不限。

“啊D”注入工具:对“MSSQL 显错模式”、“MSSQL 不显错模式”、“Access”等数据库都有很好的注入检测能力,内集“跨库查询”、“注入点扫描”、“管理入口检测”、“目录查看”等等于一身的注入工具包。

“ASP 新闻发布系统”Ok3w 源码。

三、实验内容

(一)配置实验环境,

首先选择网络适配器,安装环回适配器,在主机上安装Vmware Player,成功启动虚拟机。接着配置宿主机和虚拟机的IP,如图

要注意的是,配置主机上的IP时,应该选择VMnet8,并且注意勾取Bridge

然后,验证宿主机和虚拟机是否联通,结果显示连接成功。

最后在虚拟机上安装IIS程序,打开浏览器,输入地址“,检查网站搭建情况。

成功!

(二)寻找注入点

在宿主机上,打开网页,可以正常打开页面。

进行注入测试,键入 and 1=1,返回页面不变。

键入 and 1=2,返回页面出错。

因此,可确定该网站存在注入点。

(三)判断数据库类型

用系统表的方法进行判断,分别键入

and (select count(*) from sysobjects)>0 and (select count(*) from msysobjects)>0

两者返回均出错,可知是 access 数据库。

(四)猜测表名

一般网站后台的管理员都默认在表 admin 中,我们先试一下,键入:

and (select count(*) from admin)<>0

返回页面正常,可知该网站后台数据库中存在着表名为 admin 的表。

(五)猜测字段名不同公司网站有不同的字段名,但一般都有三个字段,分别记录 ID 号、用户名和密码,常用的字段名为:id,username,password。

分别键入 and (select count(id) from admin)<>0

and (select count(username) from admin)<>0

and (select count(password) from admin)<>0

三者返回均正常。可知,表 admin 中存在的三个字段:id,username,password。

注:“username”的截图损坏,但是返回正常,望教员通融。

(六)猜测管理员用户名和密码

1.确定表 admin 中有几条记录,键入 and (select count(*) from admin)=1 返回页面正常。

可知,表 admin 只有一条记录。

2.猜测用户名长度,键入 and (select len(username) from admin)=1 返回出错,继续键入 and (select len(username) from admin)=2 返回出错,继续测试3/4/5…,

直到返回页面正确。测试到 5 的时候,返回正常。可知,用户名长度为 5。

3.猜测用户名内容,采用 ASCII 码分析法先猜测第1 位,用二分法,键入 and (select count(*) from admin where (asc(mid(username,1,1)))between 30 and 125)<>0 返回正确,进一步缩小范围 between 70 and 100 ,between 85 and 100 ,between 90 and 100,=97。

可知第一个字符为 a。

依此类推,猜测之后的每一位字符,

最后得到用户名为 admin。

4.猜测密码,同理: and (select len(password) from admin)=6

所以密码为6位。

最终得到密码为 6 位:123456。

(七)寻找到后台管理窗口打开“啊D”软件,点击进入“管理入口检测”选项,点击“检测管理入口”,进行检测,

如图:打开检测到的各网址,测试是否为管理入口。

可知为管理入口,如图:

(八)登陆后台找到后台管理窗口,,用刚刚得到的用户名和密码登陆,后台登陆成功。

四、实验结果及分析

SQL注入攻击过程。

1) 判断Web环境是否可以SQL注入。如果URL仅是对网页的访问,不存在SQL 注入问题,如:就是普通的网页访问。只有对数据库进行动态查询的业务才可能存在SQL注入,如:,其中id=95表示数据库查询变量,这种语句会在数据库中执行,因此可能会给数据库带来威胁。

2) 寻找SQL注入点。完成上一步的片断后,就要寻找可利用的注入漏洞,通过输入一些特殊语句,可以根据浏览器返回信息,判断数据库类型,从而构建数据库查询语句找到注入点。

3) 猜解用户名和密码。数据库中存放的表名、字段名都是有规律可言的。通过构建特殊数据库语句在数据库中依次查找表名、字段名、用户名和密码的长度,以及内容。这个过程可以通过网上大量注入工具快速实现,并借助破解网站轻易破译用户密码。

4) 寻找WEB管理后台入口。通常WEB后台管理的界面不面向普通用户开放,要

寻找到后台的登陆路径,可以利用扫描工具快速搜索到可能的登陆地址,依次进行尝试,就可以试出管理台的入口地址。

5) 入侵和破坏。成功登陆后台管理后,接下来就可以任意进行破坏行为,如篡改网页、上传木马、修改、泄漏用户信息等,并进一步入侵数据库服务器。

实验心得:

在实验的过程中遇到了很多困难,配置上的,环境上的,还有一些需要注意的小问题,而且从整个实验的过程来讲也涉及到了很多软件的配合使用。

在整个实验中遇到的最大问题就是,宿主机和虚拟机此前一直连不通,通过宿主机ping虚拟机,一直无法连接。直到最后我把虚拟机的防火墙关闭了,宿主机才能访问虚拟机上发布的网页。可见,防火墙还是有一定作用的,但是对于网站来说开通了防火墙就没办法访问网页了。

相关主题
相关文档
最新文档