黑客利用跨站实现HTTP会话劫持
网络安全 2021-07-03 09:40www.168986.cn网络安全知识
Web应用程序是通过2种方式来判断和跟踪不同用户的Cookie或者Session(也叫做会话型Cookie)。其中Cookie是存储在本地计算机上的,过期时间很长,所以针对Cookie的攻击手段一般是盗取用户Cookie然后伪造Cookie冒充该用户;而Session由于其存在于服务端,随着会话的注销而失效(很快过期),往往难于利用。所以Session认证较之Cookie认证安全。
啦,Session难于利用并不等于不能利用,本文将通过一个小小的例子实现一次简单的HTTP会话劫持。
还是以ASP为例,ASP程序是如何得到客户端Session的呢?通过抓包可以发现HTTP请求的Cookie字段有个ASPSESSIONIDXXXXXXXX(X是随机的字母)值,ASP程序就是通过这个值判断Session的。如果我们得到管理员的ASPSESSIONIDXXXXXXXX及其值,并在这次会话结束之前提交到服务器,那么我们的身份就是管理员啦!
那怎么得到Session呢?答案是跨站。因为JavaScript的document.cookie()方法会把Cookie读出来,也包括会话型Cookie。
如果你关注Web安全,相信你一定看到过记录跨站得到Cookie的脚本程序,我们也需要一个类似的程序,但功能不是记录,而是立即转发(因为当前会话随时可能由于管理员退出而失效)。这个程序可以用ASP、PHP、Perl甚至C来实现,我还是用ASP吧J
要写这个程序,你还必须对要攻击的程序相当了解,因为你要提交各种请求。那现在先看看本例中被跨站的程序吧。
很荣幸,我选中了WebAdmin 1.4,嘿嘿,自己写的程序自己肯定最清楚哪里有漏洞啊。呵呵,简要介绍一下,WebAdmin是一个ASP.Net下的webshell,使用的Session认证方式,1.4版本的跨站存在于目录浏览的URL(图1)。
500)this.width=500" title="点击这里用新窗口浏览图片" />
所以我就在src中构造这样的路径“E:a=’’;document.write(a);”。这段代码就是把当前cookie作为参数提交给.0x54./test/.asp文件。
.asp文件内容如下
该文件目的是获取管理员Session并利用WebAdmin的文件编辑功能查看222.210.115.125(被攻击的Web服务器,其实是我本机啦)的E:\MyWeb\webadmin.aspx文件内容并把内容保存到本地的a.txt文件中。数据的提交使用的是ServerXMLHTTP组件,它与XMLHTTP有相似之处,也有异同,具体的可以看看《ServerXMLHTTP vs XMLHTTP》。
准备就绪,先登陆WebAdmin然后再访问构造好的跨站URL,呵呵,然后去看http://.0x54./test/a.txt,得到内容如下图所示
500)this.width=500" title="点击这里用新窗口浏览图片" />
你也可以试试直接访问.asp,呵呵,生成的a.txt将是一个登陆界面的源文件。
哈哈,现在热烈庆祝一下本次HTTP会话劫持测试胜利闭幕,实行一次这样的攻击难度还是很大的,不过话又说回来,在技术这块领域,除了Copy人家的代码,还有不需要努力就能做好的事情吗?
啦,Session难于利用并不等于不能利用,本文将通过一个小小的例子实现一次简单的HTTP会话劫持。
还是以ASP为例,ASP程序是如何得到客户端Session的呢?通过抓包可以发现HTTP请求的Cookie字段有个ASPSESSIONIDXXXXXXXX(X是随机的字母)值,ASP程序就是通过这个值判断Session的。如果我们得到管理员的ASPSESSIONIDXXXXXXXX及其值,并在这次会话结束之前提交到服务器,那么我们的身份就是管理员啦!
那怎么得到Session呢?答案是跨站。因为JavaScript的document.cookie()方法会把Cookie读出来,也包括会话型Cookie。
如果你关注Web安全,相信你一定看到过记录跨站得到Cookie的脚本程序,我们也需要一个类似的程序,但功能不是记录,而是立即转发(因为当前会话随时可能由于管理员退出而失效)。这个程序可以用ASP、PHP、Perl甚至C来实现,我还是用ASP吧J
要写这个程序,你还必须对要攻击的程序相当了解,因为你要提交各种请求。那现在先看看本例中被跨站的程序吧。
很荣幸,我选中了WebAdmin 1.4,嘿嘿,自己写的程序自己肯定最清楚哪里有漏洞啊。呵呵,简要介绍一下,WebAdmin是一个ASP.Net下的webshell,使用的Session认证方式,1.4版本的跨站存在于目录浏览的URL(图1)。
500)this.width=500" title="点击这里用新窗口浏览图片" />
所以我就在src中构造这样的路径“E:a=’’;document.write(a);”。这段代码就是把当前cookie作为参数提交给.0x54./test/.asp文件。
.asp文件内容如下
该文件目的是获取管理员Session并利用WebAdmin的文件编辑功能查看222.210.115.125(被攻击的Web服务器,其实是我本机啦)的E:\MyWeb\webadmin.aspx文件内容并把内容保存到本地的a.txt文件中。数据的提交使用的是ServerXMLHTTP组件,它与XMLHTTP有相似之处,也有异同,具体的可以看看《ServerXMLHTTP vs XMLHTTP》。
准备就绪,先登陆WebAdmin然后再访问构造好的跨站URL,呵呵,然后去看http://.0x54./test/a.txt,得到内容如下图所示
500)this.width=500" title="点击这里用新窗口浏览图片" />
你也可以试试直接访问.asp,呵呵,生成的a.txt将是一个登陆界面的源文件。
哈哈,现在热烈庆祝一下本次HTTP会话劫持测试胜利闭幕,实行一次这样的攻击难度还是很大的,不过话又说回来,在技术这块领域,除了Copy人家的代码,还有不需要努力就能做好的事情吗?
网络安全培训
- 网络安全带来的危害 网络安全的弊处
- 如何加强网络安全防范
- 网络安全防护知识内容摘要
- 什么网络安全指的是什么 网络安全指的是什么意
- 网络安全十大公司排名 网络安全十大公司排名绿
- 手机网络安全警示格言 手机网络安全警示教育片
- 网络安全培训心得体会 网络安全知识培训
- 如何树立正确的网络意识 怎么样正确对待网络
- 网络安全大赛是什么意思 网络安全大赛比赛规则
- 世界网络安全公司排名 世界十大网络安全上市公
- 网络安全注意事项知识 网络安全注意事项知识短
- 网络安全常识十条口诀 小学生安全十句话
- 网络安全等级保护三级 网络安全三级等保标准
- 如何增强网络安全防范意识 如何增强网络安全防
- 网络安全注意事项有哪些 网络安全应注意事项
- 网络安全培训感悟 网络安全培训后的收获和感想