Web安全.docx
《Web安全.docx》由会员分享,可在线阅读,更多相关《Web安全.docx(25页珍藏版)》请在冰豆网上搜索。
Web安全
甘肃政法学院
本科生实验报告
(一)
姓名:
雷博刚
学院:
公安技术学院
专业:
网络安全与执法
班级:
网络安全与执法本科班
实验课程名称:
Web安全深度剖析
实验日期:
2017-3-25
指导教师及职称:
金涛
实验成绩:
开课时间:
2016至2017学年第一学期
甘肃政法学院实验管理中心印制
题目
Web安全
小组合作
姓名
雷博刚
班级
网络安全与执法
学号
201483030120
一、实验目的
1.SQL注入实验获取后台用户名、密码、数据库架构;
2.了解跨站脚本,并知道如何发现跨站脚本及如何利用跨站脚本;
3.利用VisualStudio实现单点登录在上的实现;
4.上传木马至网站,用防篡改系统阻止木马发挥作用。
二.实验环境
本地主机(WindowsXP系统)需已安装IIS、Windows实验台(Windows2003系统)、动网论坛6.0版本、VisualStudio2005
三、实验内容与步骤
SQL注入实验
实验目标需首先确定所在主机实验台IP地址,并根据实验步骤填写正确的IP地址进行实验。
实验拓扑如图
图3.6.11
【实验步骤】
启动虚拟机,并设置实验台的IP地址,以实验台为目标主机进行攻防试验。
获取后台用户名
以动网论坛6.0为例,在地址栏中输入http:
//实验台的IP/page6/index.asp访问论坛首页,通过下图可以看到一共有2位注册会员。
图3.6.12
http:
//实验台的IP/Page6/tongji.asp?
orders=2&N=10后显示出了整个论坛中2位用户的用户名。
图3.6.13
(1)在地址栏中输入:
(注意输入命令最后的逗号)
http:
//实验台的IP/Page6/tongji.asp?
orders=2&N=10%20userclass,后,如下显示,其中管理员的身份已经被标出。
图3.6.14
(2)在地址栏中输入:
(注意输入命令最后的逗号)
http:
//实验台的IP/Page6/tongji.asp?
orders=2&N=10%20userid,
显示论坛中用户的注册次序。
图3.6.15
(3)在地址栏中输入:
(注意输入命令最后的逗号)
http:
//实验台的IP/Page6/tongji.asp?
orders=2&N=10%20userpassword,显示2个用户的密码,被MD5进行了加密。
图3.6.16
(4)在地址栏中输入:
(注意输入命令最后的逗号)
http:
//实验台的IP/Page6/tongji.asp?
orders=2&N=10%20quesion,显示的是论坛中用户忘记密码后的提示问题。
图3.6.17
(5)在地址栏中输入:
(注意输入命令最后的逗号)
http:
//实验台的IP/Page6/tongji.asp?
orders=2&N=10%20answer,显示用户忘记密码后提示问题的答案,也是通过MD5加密的。
图3.6.18
一、构造SQL注入点
构造SQL注入点文件(slq.asp),代码如下:
(注:
此sql.asp文件可以从工具箱中下载)
<%
strSQLServerName="."'数据库实例名称(说明:
“.”表示本地数据库)
strSQLDBUserName="sa"'数据库帐号
strSQLDBPassword="123456"'数据库密码
strSQLDBName="test"'数据库名称
Setconn=Server.createObject("ADODB.Connection")
strCon="Provider=SQLOLEDB.1;PersistSecurityInfo=False;Server="&strSQLServerName&";UserID="&strSQLDBUserName&";Password="&strSQLDBPassword&";Database="&strSQLDBName&";"
conn.openstrCon
dimrs,strSQL,id
setrs=server.createobject("ADODB.recordset")
id=request("id")
strSQL="select*fromadminwhereid="&id
rs.openstrSQL,conn,1,3
rs.close
%>
Test!
!
!
!
在这里,把这个写好的存在漏洞的文件保存为sql.asp,放入实验台中动网6.0的根目录中。
在该文件中,并没有对变量字段id进行过滤。
因此该注入点可被找到并注入。
启动啊Dsql注入工具,直接单击[登陆]按钮进入攻击界面:
图3.6.19
在检测网址输入框中输入我们构造的SQL注入点”http:
//实验台IP/page6/sql.asp?
id=1”,点击红色的打开网页图标。
这时我们可以看到该工具已经检测出注入点,并用红色的字体标出。
图3.6.110
选择SQL注入检测,界面如下:
图3.6.111
点击检测按键后,界面为:
图3.6.112
点击检测表段、字段按钮,则会显示出我们之前所建立的表和字段,在点检测内容,则把我们所构造的表中的所有信息全显示了出来。
在底下的当前库中显示了该表所在的数据库。
连接类型为数字型也被检测出来了。
数据库也显示出来了MSSQL,当前用户为dbo,即sa。
当前的权限也为sa权限。
点击跨库按键,则显示出了当前主机中所有的数据库。
如下图所示。
图3.6.113
从列表中选择某个数据库,然后点击检测表段、字段、内容。
所选数据库中的所有内容都可以被显示出来。
如下图所示。
图3.6.114
跨站脚本攻击(XSS)实验
【实验步骤】
(1)打开Windows实验台,然后在IE浏览器中输入http:
//localhost/xss-test.asp,得到如图所示的界面,此网页可以直接输出文本框中输入的内容。
图3.6.21
(2)尝试输入任意字符、符号、数字,查看网页,如下所示。
图3.6.22输入字母“abcbc”所得页面
图3.6.23输入数字“123123”
图3.6.24输入“@#@#@#”
从上面的图片可以看出,页面是显示正常的。
(3)检测能否XSS
在输入栏中分别输入:
弹出提示框
alert('XSS')">弹出提示框
弹出用户COOKIES
//localhost/xss-test.asp>在当前页插入另一站点
并查看效果,效果如图
图3.6.25输入之后的效果
图3.6.26输入//localhost/xss-test.asp>之后的效果
通过上面的实验,能够看出,由于页面对于特殊符号未进行过滤,导致了跨站的产生,如图,如果这时
单点登录实验
【实验步骤】
一、具体流程
用户数据库:
users;Singlelogin站点为主站点,apply1、apply2分别为分站点。
(一)登录流程(假设登录apply1站点登录的用户为xiaoliu)
(1)首先验证用户的分站点凭证,如果存在,登录成功。
否则就查看apply1是否有令牌,如果有令牌,则给apply1发放分站点凭证,登录成功。
如果均不存在,则返回主站点要求用户登录。
(2)通过主站点的登录页面输入用户名xiaoliu以及密码123456。
(3)对输入的用户名和相应的密码users中查找,如果没有找到相应用户或者用户密码不正确则返回登录页面。
(4)登录后,将用户登录信息存储到Cache中,给apply1和apply2发放令牌,并且给原分站点发放分站点凭证,成功登录apply1。
(二)退出流程(假设登出apply1站点,登出的用户为xiaoliu)
(1)点击“注销”按钮后,收回分站点apply1的分站点凭证,并返回主站点。
(2)在主站点注销用户xiaoliu的相关Cache。
(3)退出成功。
(三)访问流程(登录后,在各个子应用间切换)
假设xiaoliu已经通过singlelogin站点的入口成功登录了apply1站点,并且认证中心正常工作。
(1)如果此时访问apply2站点,判断apply2站点中是否有分站点凭证,如果有登录成功。
(2)如果apply2没有分站点凭证,则查看其是否拥有令牌,如果令牌存在则可以访问,否则返回主站点,要求用户登录。
(3)如果用户拥有了站点凭证,可以访问站点下任何一个子网页。
(4)当注销后,分站点凭证和令牌都被收回,用户将不能访问所有站点。
过程和退出过程类似。
如图所示为单点登录的访问流程图。
图3.6.31访问流程图
二、具体实施过程
(1)启动Windows实验台,打开IIS管理器,在网站下面找到应用站点apply1和apply2。
(2)打开IE浏览器,设置通过httpwatch观察网页的跳转过程,如图3.6.32启动httpwatch;点击“记录”,如图3所示选择许可文件httpwatch.lic,然后浏览站点apply1下边的网页line1.aspx。
图3.6.32
图3.6.33
图3.6.34
(3)先浏览站点apply1下边的网页line1.aspx然后登陆(用户名xiaoliu,密码123456).打开line1的时候,会首先验证分站凭证(也就是session信息)是否存在,接着去验证是否有令牌(也就是Cache信息),显然都不存在,所以要求用户到主站去登录,当用户输入正确的用户名和密码的时候,主站点会根据请求地址返回,并给请求的分站点发放令牌和分站凭证。
具体分析依次如图所示,注意httpwatch选择查看“标题”信息。
图3.6.35登录line1.aspx
(1)
图3.6.36登录line1.aspx
(2)
图3.6.37登录line1.aspx(3)
图3.6.38登录line1.aspx(4)
(4)这个时候如果我们登录apply2的line2(在IIS服务器中选择“浏览”),首先要检查line2的分站凭证(line2和line1是相互独立的站点,所以接受不到line1的session),接下来检查line2的令牌,apply2可以接受到主站发放的令牌,这时候给line2发放分站凭证,登录成功。
具体过程分析依次如图3.6.38、图3.6.39和图3.6.310所示。
登录line2.aspx
(1)
登录line2.aspx
(2)
登录line2.aspx(3)
(5)接下来如果我们在line2中注销用户,分站凭证被删除,返回主站点,收回用户的令牌后返回登录界面,具体过程分析如图3.6.311和图3.6.312所示。
在line2.aspx中注销
(1)