XSS线上靶场---Warmups

这篇博客介绍了多个XSS(跨站脚本)线上靶场的挑战,包括Ma Spaghet!, Jefff, Ugandan Knuckles等关卡,通过分析关键代码,展示了如何利用innerHTML、URLSearchParams、setTimeout等特性绕过过滤机制,实现XSS攻击。每个关卡都提供了详细的技术点解析和解决方案,帮助读者深入理解XSS漏洞和防御策略。" 73740721,6899538,Unity Shader教程:理解Shader属性,"['Unity开发', '图形编程', 'Shader学习']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

线上靶场网址

Ma Spaghet! 

Jefff

Ugandan Knuckles

Ricardo Milos

Ah That's Hawt

Ligma

Mafia

Ok, Boomer


线上靶场网址

WarmupsXSS Game: Learn Cross Site Scripting (XSS) by completing challenges!https://xss.pwnfunction.com/warmups

Ma Spaghet! 

关键代码分析:

spaghet.innerHTML = (new URL(location).searchParams.get('somebody') || "Somebody") + " Toucha Ma Spaghet!"

1、URLSearchParams接口定义了一些实用的方法来处理URL的查询字符串。

URLSearchParams()是一个可以操作查询字符串的对象。

常用方法:    1、构造查询字符串                   2、获取查询字符串参数

2、innerHTML:它是一个字符串,用来设置或获取位于对象起始和结束标签内的HTML。相当于获取HTML当前标签的起始和结束里面的内容。

使用get方法传递URL,没有其他过滤方式,我们尝试使用<script>alert(1)</script>绕过一下

 没有弹窗,我们再找找原因?

由于是因为<script>语句是由innerHTML标签传上去的,我们先查看innerHTML的作用: 在HTML5中指定不执行innerHTML中插入的<script>标签

所以换成<img  src=1  οnerrοr=alert(1337)>再试试,成功了

Jefff

关键代码分析:

eval(`ma = "Ma name ${jeff}"`)
    setTimeout(_ => {
        maname.innerText = ma
    }, 1000)

1、使用模板字符串传递jefff

2、setTimeout:在指定的延迟时间之后调用一个函数或执行一个代码片段

3、innerText:用来定义对象所要输出的文本

首先我们直接尝试将alert(1)传递进去试一下

没有成功,上述方法组合:eval(`ma = "Ma name ${alert(1337)}"`),我们分析一下这个语句

eval虽然仅接受第一个参数,但是会先执行第二个参数,虽然第二个参数可以执行,但是不会接受

第二个参数执行后的结果。

我们首先得将双引号闭合在执行alert,就是将双引号里面的字符串作为第一个参数,alert(1337)作为第二个参数执行

最后组合成:eval(`ma = "Ma name ${aa";alert(1337)//}"`)  ,成功了

Ugandan Knuckles

关键代码分析:

<script>
    let wey = (new URL(location).searchParams.get('wey') || "do you know da wey?");
    wey = wey.replace(/[<>]/g, '')
    uganda.inne
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值