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虚拟机,一直无法连接。直到最后我把虚拟机的防火墙关闭了,宿主机才能访问虚拟机上发布的网页。可见,防火墙还是有一定作用的,但是对于网站来说开通了防火墙就没办法访问网页了。