• 《XSS-Labs》01. Level 1~10



    title: 《XSS-Labs》01. Level 1~10
    date: 2023-10-02 21:58:27
    updated: 2023-10-19 10:15:46
    categories: WriteUp:Security-Lab
    excerpt: 简单的验证方式、标签闭合构造 payload、onfocus 事件利用,js 伪协议、 标签 href 属性利用、大小写绕过、双写绕过、href 自动 Unicode 解码利用、onfocus 利用,js 伪协议,表单属性。
    comments: false
    tags:
    top_image: /images/backimg/SunsetClimbing.png



    靶场部署在 VMware - Win7。

    靶场地址:https://github.com/do0dl3/xss-labs

    只要手动注入恶意 JavaScript 脚本成功,就可以证明 xss 漏洞存在。
    最简单的验证方法:

    索引

    Level-1

    题解

    查看网站源码,可以发现 GET 传递的 name 参数值插入了 html 里。

    在这里插入图片描述

    直接测试 payload

    url + ?name=
    
    • 1

    在这里插入图片描述

    Level-2

    在这里插入图片描述

    题解

    先使用 测试一下,未成功。

    在这里插入图片描述

    【ctrl】+【u】查看一下源码。可以看到第一个输出结果被 html 实体转义了,但 value 中的没有。

    在这里插入图片描述

    那就闭合标签来构造 payload

    ">  <"
    
    • 1

    Level-3

    在这里插入图片描述

    题解

    使用 测试。查看源码可以看到符号都被转义了。

    在这里插入图片描述

    那这里就利用 onfocus 事件绕过。利用这个事件来绕过 < 和 > 号的过滤来执行 js。

    payload

    ' onfocus=javascript:alert() '
    
    • 1

    在这里插入图片描述

    再次点击输入框就能执行脚本。

    总结

    JavaScript 中的事件是与 HTML 元素相关联的动作或发生的情况,可以通过 JavaScript 代码来捕获和处理。

    事件可以是用户交互,例如鼠标点击、键盘按键,也可以是浏览器或文档的状态变化,例如文档加载完成或元素的属性改变。
    事件处理允许程序员编写响应用户操作或应用程序状态变化的代码。

    onfocus 事件

    在这里插入图片描述

    • onfocus 事件在元素获得焦点时触发,最常与 标签有输入框,当输入框被点击的时候,就会触发 myFunction() 函数。
    • 可以配合 javascript 伪协议来执行 js 代码。

    Level-4

    在这里插入图片描述

    题解

    原理与 Level-3 一样,只是要闭合的引号从单引号变成了双引号。

    payload

    " onfocus=javascript:alert() "
    
    • 1

    Level-5

    在这里插入图片描述

    题解

    测试 " onfocus=javascript:alert() ",查看源码,过滤了 onfocus,且大小写绕过不管用。

    在这里插入图片描述

    利用 标签 href 属性。前提是【>】【<】【"】没失效。

    payload

    "> xss <"
    
    • 1

    点击链接即可。

    在这里插入图片描述

    总结

    标签 href 属性。

    在这里插入图片描述

    Level-6

    题解

    输入关键字测试一下:

    onfocus  <"
    
    • 1
    " oNfocus=jAvascript:alert() "
    
    • 1
    "> xss <"
    
    • 1

    Level-7

    题解

    传递下列关键字测试并查看源码。

    oNfocus  看看源码。

    url + ?keyword=
    
    • 1

    在这里插入图片描述

    都被转义了,但下面有几个隐藏的表单?

    尝试用每个 name GET 传参。然后查看源码。

    url + ?t_link=l&t_history=h&t_sort=s
    
    • 1

    在这里插入图片描述

    可以看到有回显。那就利用这个表单构造 payload。

    payload

    url + ?t_sort=" onfocus=javascript:alert() type="text
    
    • 1

    燕语如伤旧国春,宫花一落已成尘。

    ——《隋宫燕》(唐)李益

  • 相关阅读:
    蓝桥杯模拟赛:最远滑行距离 ← dfs
    什么是集成测试?集成测试方法有哪些?
    c高级day1(9.6) 离线软件安装,文件相关指令,文件权限相关指令,
    计算机网络:3数据链路层
    VMware ifconfig ip报错解决记录
    浏览器面试题及答案【集合目录】
    二维数组
    【MEF:深度感知增强(细节增强:色彩映增强)】
    python中的闭包函数&装饰器
    大数据必学Java基础(五十一):什么是算法和数据结构
  • 原文地址:https://blog.csdn.net/KeepPromise/article/details/132816318