zoukankan      html  css  js  c++  java
  • 跨站脚本攻击xss学习

    0、认识跨站脚本

    举一个跨站脚本的简单例子。

    假设一个页面将用户输入的参数直接显示到页面之中。(比如有如下代码)

    在实际的浏览器中,在param中提交的参数正常会展示到页面之中。比如输入下面的URL:

    然后发现浏览器页面的提供会变成这样:

    此时如果提交下面的URL:

    会发现alert被执行了

     

        

    1、跨站脚本分类

    跨站脚本攻击分为3类,反射型、存储型和DOM Based XSS。

    1、反射型xss。浏览器执行一个不可信的脚本,并获得服务器的响应。通常黑客需要引诱用户点击恶意链接来进行触发。

    2、存储型xss。比如在服务器的博客文章中有恶意脚本,那么每个访问该博客的浏览器都会执行这段而已代码。

    3、修改页面的DOM节点形成的xss。(实际上也是浏览器执行不可信的脚本,但还是单独被列出为一类)

    2、XSS Payload

    XSS攻击成功之后,攻击者能够对当前浏览器的页面植入恶意脚本,通过恶意脚本,控制用户浏览器。这些用来完成各种具体功能的恶意脚本,被成为XSS Payload。

    XSS Payload实际上就是javaScript脚本(还可以是Flash或其他富客户端的脚本)。所以javascript能做到的事情,XSS Payload都能够做到。

    2.1 XSS Payload获取Cookie(通过URL的param远程加载一个脚本,脚本中加载一个图片,将cookie放入图片路径)

    从开头的例子看到,通过URL的方式能够使一个脚本执行。

    通过如下方式去加载一个远程脚本:

    然后在evil.js中写入获取Cookie的代码(这段代码本身是加载一个图片,但是通过请求一个图片,将cookie放在请求的URL中):

    即使最后该图片路径不存在,服务器也会记录下这次访问的URL,也就是能获取到cookie了。

    获取cookie后,使用用户的cookie就可以伪造用户登录,但是很容易被防范。

     2.2 强大的XSS Payload

    模拟用户的行为:

    1、构建form表单

    2、通过XMLHttpRequest发送消息

    比如通过网络抓包来获取某项行为的URL,然后模拟用户发送该URL

    XSS钓鱼:

    伪造一个假的登录框或是页面。

    识别用户浏览器:

    1、读取浏览器的UserAgent(可以伪造)

    2、根据不同浏览器各自的独特功能,识别浏览器独有的对象

    识别用户安装的软件:

    1、activex的classid

    2、falsh的system.capabilities对象(软件的专属对象)

    ccs访问过的网站颜色不同会造成信息泄漏

    获取真实IP:

    javascript没有直接接口,需要使用其他软件完成,比如JRE

    2.3 XSS攻击平台

    Attack API

    BeEF

    XSS-Proxy

    2.4 XSS Worm

    2005地一个蠕虫病毒

    2007年百度空间蠕虫病毒

    2.5 调试javascript

    firebug

    IE8 Developer Tools

    Fiddler

    HttpWatch

    2.6 XSS 构造技巧

    3、XSS防御

    HttpOnly:在cookie设置HttpOnly属性,可以让javascript读取不到cookie

    输入检查:比如排查有没有像'<'或'>'等特殊字符

    输出检查:将变量输出成html时可以使用编码或转义字符的方式来防御XSS攻击,将比如将<转义成&lt

  • 相关阅读:
    字符串数组去重
    Intel Nehalem微架构Calpella平台机型Windows XP系统下如何开启AHCI硬盘工作模式(XP系统下如何加载AHCI驱动)
    国内外各大免费搜索引擎、导航网址提交入口
    asp.net treeview
    使用Membership,您的登录尝试不成功。请重试"的解决方法
    安装Window Server 2008的些配置
    关于数据,彻底删除数据和恢复数据(转)
    根据Map值 double 类型的进行排序
    Mysql 去回车空格
    Docker安装容器示例
  • 原文地址:https://www.cnblogs.com/likaiming/p/9899482.html
Copyright © 2011-2022 走看看