十四、pikachu之XSS

这篇具有很好参考价值的文章主要介绍了十四、pikachu之XSS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、XSS概述

  Cross-Site Scripting简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:

  • 反射性XSS;
  • 存储型XSS;
  • DOM型XSS;

  XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。

  因此,在XSS漏洞的防范上,一般会采用对输入进行过滤输出进行转义的方式进行处理:

  • 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  • 输出转义:根据输出点的位置对输出到前端的内容进行适当转义。

2、实战

2.1 反射型XSS(get)

(1)j既然已经提示这题属于反射型XSS,直接上payload:<script>alert("XSS")</script>;

十四、pikachu之XSS,pikachu,xss,状态模式,前端
  发现:payload被截断了。查看前端源码:

十四、pikachu之XSS,pikachu,xss,状态模式,前端
  输入框有长度限制,那么我们直接Burp进行抓包,修改数据包试试:

  payload:http://192.168.92.1:32769/vul/xss/xss_reflected_get.php?message=%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%58%53%53%22%29%3c%2f%73%63%72%69%70%74%3e&submit=submit

十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.2 反射型XSS(POST型)

(1)首先使用用户名和密码进行登录;
十四、pikachu之XSS,pikachu,xss,状态模式,前端
(2)这一题跟前一题差不多,直接在输入框中上payload:<script>alert(document.cookie)</script>

十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.3 存储型XSS

(1)首先在留言板中输入一些特殊的字符串,发现并没有过滤:
十四、pikachu之XSS,pikachu,xss,状态模式,前端
(2)跟前面一样,直接上payload:<script>alert(document.cookie)<script>
十四、pikachu之XSS,pikachu,xss,状态模式,前端

  与反射型XSS不同的是,存储型XSS会使每访问一次页面,页面都会弹框。

2.4 DOM型XSS

  DOM型XSS和反射型XSS、存储型XSS的区别在于:DOM型不用将恶意脚本传输到服务器在返回客户端,而后两种恶意脚本都会经过服务器端然后返回给客户端。

  对于浏览器来说,DOM文档就是一份XML文档,通过JavaScript就可以轻松的访问DOM文档。下面举例一个DOM将HTML代码转化成树状结构:

<html>
    <head>
        <meta charset="gbk" />
        <title> TEST </title>
    </head>
    <body>
        <p>The is p.<p>
        <h1>Product:</h1>
        <ul>
            <li>Apple</li>
            <li>Pear</li>
            <li>Corn</li>
        </ul>
    </body>
</html>

转化成模型如下图:
十四、pikachu之XSS,pikachu,xss,状态模式,前端

  通过这种简单的树状结构,就能把元素之间的关系简单明晰的表示出来,方便客户端的JavaScript脚本通过DOM动态的检查和修改页面内容,不依赖服务端的数据。

(1)在搜索框中随便输入12,页面回显“what do you see?”。
十四、pikachu之XSS,pikachu,xss,状态模式,前端
(2)查看页面源代码:
十四、pikachu之XSS,pikachu,xss,状态模式,前端
  大意:点击“click me!”按钮,会执行domxss()函数,变量str的值为输入框中的内容,然后将str的值与<a href='‘>what do you see?</a>进行拼接。

  我们只需要闭合a标签,就可以使得payload执行。构造payload:'><img src="#" onmouseover="alert('xss')">

  注意,不能再script标签下再嵌套script标签,故换一个payload,当鼠标移动到图片的的地方,就会弹窗。

十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.5 DOM型XSS-X

查看源码;
十四、pikachu之XSS,pikachu,xss,状态模式,前端
  关于window.location.search就是URL中?后面的字母,具体如下:
十四、pikachu之XSS,pikachu,xss,状态模式,前端
  然后经过切分、替换,将str的值与<a href='‘>就让往事都随风,都随风吧</a>进行拼接。构造payload:'><img src="#" onmouseover="alert('xss')">

  需要点击有些费尽心机想要忘记的事情,后来真的就忘掉了之后,在将鼠标移动到图片处,才会弹框。
十四、pikachu之XSS,pikachu,xss,状态模式,前端

十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.6 XSS之盲打

  xss盲打是一种攻击场景,我们输出的payload不会在前端进行输出,当管理员查看我们的留言时就会遭到xss攻击。

十四、pikachu之XSS,pikachu,xss,状态模式,前端

  输入常规的payload:<script>alert(/xss/)</script>,登录后台地址去看看(/xssblind/admin_login.php)。

十四、pikachu之XSS,pikachu,xss,状态模式,前端
十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.7 XSS之过滤

  绕过过滤的方法:

  • 前端限制绕过,直接抓包重放,或者修改html前端代码
  • 大小写,比如:<SCRIPT>aLeRT(111)</sCRIpt>
  • 拼凑:<scri<script>pt>alert(111)</scri</script> pt>
  • 使用注释进行干扰:<scri<!--test-->pt>alert(111)</sc <!--test--> ript>
  • 使用其他的标签,绕过script标签,如:<img src="#" onmouseover="alert('xss')">

这里使用payload:<img src="#" onmouseover="alert('xss')">
十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.8 XSS之htmlspecialchars

  htmlspecialchars()函数是php常用方法,是把预定义的字符转换为HTML实体。其语法:htmlspecialchars(string,flags,character-set,double_encode)

  常见的预定义的字符有:

  • &(和号)成为&amp
  • "(双引号)成为&quot
  • (单引号)成为&#039
  • <(小于)成为&lt
  • >(大于)成为&gt

  输入" ' > < 之后,发现除了单引号没被转化外,其他都被转化为HTML实体了。
十四、pikachu之XSS,pikachu,xss,状态模式,前端
  故,构造payload:#' onclick='alert(/xss/),前一个引号闭合href属性,第二个引号闭合onclick属性。
十四、pikachu之XSS,pikachu,xss,状态模式,前端
十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.9 XSS之href输出

  在输入框中输入<script>alert('xss')</script>,打开源代码,发现均被HTML实体化了,闭合标签和闭合属性的方法行不通了。
十四、pikachu之XSS,pikachu,xss,状态模式,前端
  关于<a> 标签的href属性:

  <a> 标签的 href 属性用于指定超链接目标的 URL。href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了 <a> 标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。

  总而言之,在a标签的href属性里面,可以使用javascript协议来执行js,可以尝试使用伪协议绕过。构造payload:javascript:alert(/xss/)

注意:alert中字符串需要用"、' or /包含,数字不用。
十四、pikachu之XSS,pikachu,xss,状态模式,前端

2.10 XSS之JS输出

  输入<script>alert('xss')</script>,发现不行,打开源代码,可以看到payload被带到script标签里去了。
十四、pikachu之XSS,pikachu,xss,状态模式,前端

  构造payload:';alert(1);//';闭合掉当前的语句,然后插入新语句,然后再用//注释掉老语句遗留下来的';

十四、pikachu之XSS,pikachu,xss,状态模式,前端文章来源地址https://www.toymoban.com/news/detail-675283.html

到了这里,关于十四、pikachu之XSS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Web漏洞-XSS绕过和pikachu靶场4个场景(三)

    Web漏洞-XSS绕过和pikachu靶场4个场景(三)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1.1、XSS漏洞挖掘 数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考

    2024年02月05日
    浏览(9)
  • Pikachu靶场通关笔记--Cross-Site Scripting (XSS)

    Pikachu靶场通关笔记--Cross-Site Scripting (XSS)

    首先,我们先区分get和post的区别。GET是以url方式提交数据;POST是以表单方式在请求体里面提交。通过get提交的数据是可以直接在url中看到的,所以GET方式的XSS漏洞更加容易被利用, 一般利用的方式是将带有跨站脚本的URL伪装后发送给目标,而POST方式由于是以表单方式提交,无法

    2024年02月05日
    浏览(10)
  • 【前端安全】-【防范xss攻击】

    XSS 攻击是页面被注入了恶意的代码 公司需要一个搜索页面,根据 URL 参数决定的内容。小明写的前端页面代码如下: 如果这个url是: http://xxx/search?keyword=\\\"scriptalert(\\\'XSS\\\');/script ,会导致页面弹出两次弹窗,因为当浏览器请求 http://xxx/search?keyword=\\\"scriptalert(\\\'XSS\\\');/script 时,

    2024年02月09日
    浏览(12)
  • 前端安全(XSS、CSRF)

    什么是xss攻击: XSS(跨站脚本攻击)是指攻击者通过注入恶意代码到 Web 页面中,从而达到攻击的目的。 XSS(跨站脚本攻击)是一种常见的 Web 攻击方式,攻击者通过在 Web 页面中注入恶意脚本,从而达到窃取用户信息、Cookie 和会话 ID、破坏网站基础设施等目的。 XSS 攻击一

    2024年02月11日
    浏览(7)
  • 前端安全XSS和CSRF讲解

    前端安全XSS和CSRF讲解

    全称 Cross Site Scripting ,名为 跨站脚本攻击 。为啥不是单词第一个字母组合CSS,大概率与样式名称css进行区分。 XSS攻击原理 不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、html代码块等)。 导致的结

    2024年02月14日
    浏览(9)
  • 前端安全:CSRF、XSS该怎么防御?

    前端安全:CSRF、XSS该怎么防御?

    近几年随着业务的不断发展,前端随之面临很多安全挑战。我们在日常开发中也需要不断预防和修复安全漏洞。接下来,梳理一些场景的前端安全问题和对应的解决方案。 XSS是后端的责任,后端应该在用户提交数据的接口对隐私敏感的数据进行转义。 NO,这种说法不对 所有

    2024年02月02日
    浏览(9)
  • 前端安全系列(一):如何防止XSS攻击?

    前端安全系列(一):如何防止XSS攻击?

    随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点。在移动互联网时代,前端人员除了传统的 XSS、CSRF 等安全问题之外,又时常遭遇网络劫持、非法调用 Hybrid API 等新型安全问题。当然,浏览器自身也在不断在

    2024年02月02日
    浏览(13)
  • 前端安全:XSS 与 CSRF 安全防御

    在当今数字化的时代,前端安全性变得愈发重要。跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是常见的前端安全威胁,但通过一些简单的防御策略,我们可以有效地保护我们的应用程序和用户信息。本文将为您解释什么是 XSS 和 CSRF,以及如何防御这些威胁。 1. 跨站脚本攻击

    2024年02月13日
    浏览(9)
  • 面试:前端安全之XSS及CSRF

    面试:前端安全之XSS及CSRF

    XSS攻击全称跨站脚本攻击(Cross Site Scripting); CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF;是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户

    2024年02月16日
    浏览(8)
  • 前端面试题---HTTP/HTTPS以及XSS攻击

    HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本的协议。它基于客户端-服务器模型,客户端发起请求,服务器响应请求并返回相应的数据。以下是 HTTP 的基本工作原理: 1. 客户端发起请求:客户端(通常是浏览器)向服务器发送 HTTP 请求。请求包括请求行、请求

    2024年02月09日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包