Skip to content

Instantly share code, notes, and snippets.

@hjzheng
Last active August 14, 2020 14:47
Show Gist options
  • Select an option

  • Save hjzheng/b30ff96140554a41fd3a986acebcd69b to your computer and use it in GitHub Desktop.

Select an option

Save hjzheng/b30ff96140554a41fd3a986acebcd69b to your computer and use it in GitHub Desktop.

Revisions

  1. hjzheng revised this gist Aug 14, 2020. No changes.
  2. hjzheng revised this gist Aug 14, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -69,7 +69,7 @@


    参考资料:
    https://tech.meituan.com/2018/09/27/fe-security.html
    https://www.youtube.com/watch?v=QJzkifQ-Cuk
    - https://tech.meituan.com/2018/09/27/fe-security.html
    - https://www.youtube.com/watch?v=QJzkifQ-Cuk


  3. hjzheng revised this gist Aug 14, 2020. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion xss.md
    Original file line number Diff line number Diff line change
    @@ -68,6 +68,8 @@
    2. 使用扫描工具自动检测 XSS 漏洞。


    参考资料:https://tech.meituan.com/2018/09/27/fe-security.html
    参考资料:
    https://tech.meituan.com/2018/09/27/fe-security.html
    https://www.youtube.com/watch?v=QJzkifQ-Cuk


  4. hjzheng revised this gist Aug 14, 2020. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -57,6 +57,10 @@
    2. 对任何非信任来源数据进行编码处理(前后端使用统一的编码库)
    3. CSP: Content-Security-Policy (内容安全策略)

    注意:如果用 Vue/React 技术栈,并且不使用 v-html/dangerouslySetInnerHTML 功能,就在前端 render 阶段避免 innerHTML、outerHTML 的 XSS 隐患。

    一定要确保 dangerouslySetInnerHTML 里面的内容来自可信任的来源。(例如来自后端信息)


    ## XSS检测

  5. hjzheng revised this gist Aug 14, 2020. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -27,6 +27,13 @@

    ## XSS危害

    1. 盗取用户cookies信息
    2. 劫持用户浏览器
    3. 强制弹出广告页面、刷流量
    4. 网页挂马
    5. 进行恶意操作,例如任意篡改页面信息
    6. 获取客户端隐私信息等

    ## XSS攻击
    ### 分类
    XSS 攻击可以分为3类:存储型(持久型)、反射型(非持久型)、DOM 型。
  6. hjzheng revised this gist Aug 14, 2020. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -16,12 +16,12 @@
    攻击者,利用网站开发的漏洞,将恶意代码,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行,从而达到攻击者的目的。

    恶意代码的可能来源:
    1.用户 UGC 内容 (UGC 互联网术语,全称为User Generated Content,也就是用户生成内容)
    2.来自第三方的链接
    3.URL 参数
    4.POST 参数
    5.Referer (可能来自不可信的来源)
    6.Cookie (可能来自其他子域注入)
    1. 用户 UGC 内容 (UGC 互联网术语,全称为User Generated Content,也就是用户生成内容)
    2. 来自第三方的链接
    3. URL 参数
    4. POST 参数
    5. Referer(可能来自不可信的来源)
    6. Cookie(可能来自其他子域注入)

    防御的关键就是对任何非可信来源的数据(可能包含有恶意代码)进行处理

  7. hjzheng revised this gist Aug 14, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -53,8 +53,8 @@

    ## XSS检测

    1.使用通用 XSS 攻击字符串手动检测 XSS 漏洞。
    2.使用扫描工具自动检测 XSS 漏洞。
    1. 使用通用 XSS 攻击字符串手动检测 XSS 漏洞。
    2. 使用扫描工具自动检测 XSS 漏洞。


    参考资料:https://tech.meituan.com/2018/09/27/fe-security.html
  8. hjzheng revised this gist Aug 14, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -5,6 +5,7 @@
    3. XSS危害
    4. XSS攻击 (攻击分类与举例)
    5. XSS防御
    6. XSS检测

    ## 什么是 XSS

  9. hjzheng revised this gist Aug 14, 2020. 1 changed file with 9 additions and 3 deletions.
    12 changes: 9 additions & 3 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -39,15 +39,21 @@
    3. 基于 DOM 的 XSS
    通过修改原始的客户端代码,受害者浏览器的 DOM 环境改变,导致有效载荷的执行。也就是说,页面本身并没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面,并且意外执行。

    DOM 型 XSS 攻击,实际上就是网站前端 JavaScript 代码本身不够严谨,把不可信的数据当作代码执行了。

    ### 举例

    ## XSS防御

    1.将重要的 cookie 标记为 http only。
    2.对数据进行 Encode 处理
    3.CSP: Content-Security-Policy (内容安全策略)
    1. 将重要的 cookie 标记为 http only
    2. 对任何非信任来源数据进行编码处理(前后端使用统一的编码库)
    3. CSP: Content-Security-Policy (内容安全策略)


    ## XSS检测

    1.使用通用 XSS 攻击字符串手动检测 XSS 漏洞。
    2.使用扫描工具自动检测 XSS 漏洞。


    参考资料:https://tech.meituan.com/2018/09/27/fe-security.html
  10. hjzheng revised this gist Aug 14, 2020. 1 changed file with 18 additions and 2 deletions.
    20 changes: 18 additions & 2 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -11,9 +11,18 @@
    引用自 wiki
    > 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
    > XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
    ## XSS原理
    攻击者,利用网站开发的漏洞,将恶意代码,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行,从而达到攻击者的目的。

    恶意代码的可能来源:
    1.用户 UGC 内容 (UGC 互联网术语,全称为User Generated Content,也就是用户生成内容)
    2.来自第三方的链接
    3.URL 参数
    4.POST 参数
    5.Referer (可能来自不可信的来源)
    6.Cookie (可能来自其他子域注入)

    防御的关键就是对任何非可信来源的数据(可能包含有恶意代码)进行处理

    ## XSS危害

    @@ -29,11 +38,18 @@

    3. 基于 DOM 的 XSS
    通过修改原始的客户端代码,受害者浏览器的 DOM 环境改变,导致有效载荷的执行。也就是说,页面本身并没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面,并且意外执行。

    ### 举例

    ## XSS防御

    1.将重要的 cookie 标记为 http only。
    2.对数据进行 Encode 处理
    3.CSP: Content-Security-Policy (内容安全策略)




    参考资料:https://tech.meituan.com/2018/09/27/fe-security.html


  11. hjzheng revised this gist Aug 14, 2020. 1 changed file with 31 additions and 1 deletion.
    32 changes: 31 additions & 1 deletion xss.md
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,39 @@
    目录
    ### 目录

    1. 什么是XSS
    2. XSS原理
    3. XSS危害
    4. XSS攻击 (攻击分类与举例)
    5. XSS防御

    ## 什么是 XSS

    引用自 wiki
    > 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
    > XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
    ## XSS原理

    ## XSS危害

    ## XSS攻击
    ### 分类
    XSS 攻击可以分为3类:存储型(持久型)、反射型(非持久型)、DOM 型。

    1. 存储型 XSS
    注入型脚本永久存储在目标服务器上。当浏览器请求数据时,脚本从服务器上传回并执行。

    2. 反射型 XSS
    当用户点击一个恶意链接,或者提交一个表单,或者进入一个恶意网站时,注入脚本进入被攻击者的网站。Web服务器将注入脚本,比如一个错误信息,搜索结果等 返回到用户的浏览器上。由于浏览器认为这个响应来自"可信任"的服务器,所以会执行这段脚本。

    3. 基于 DOM 的 XSS
    通过修改原始的客户端代码,受害者浏览器的 DOM 环境改变,导致有效载荷的执行。也就是说,页面本身并没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面,并且意外执行。
    ### 举例

    ## XSS防御





  12. hjzheng revised this gist Aug 14, 2020. 1 changed file with 6 additions and 5 deletions.
    11 changes: 6 additions & 5 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,9 @@
    目录
    1.什么是XSS
    2.XSS原理
    3.XSS危害
    4.XSS攻击 (攻击分类与举例)
    5.XSS防御

    1. 什么是XSS
    2. XSS原理
    3. XSS危害
    4. XSS攻击 (攻击分类与举例)
    5. XSS防御


  13. hjzheng created this gist Aug 14, 2020.
    8 changes: 8 additions & 0 deletions xss.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    目录
    1.什么是XSS
    2.XSS原理
    3.XSS危害
    4.XSS攻击 (攻击分类与举例)
    5.XSS防御