网络安全之xss靶场练习

目录

一、xss靶场练习

1、Ma Spaghet!

2、Jefff

第一个方法

第二个方法

3、Ugandan Knuckles

4、Ricardo Milos

5、Ah That's Hawt

6、Ligma

7、Mafia​编辑

8、Ok, Boomer


一、xss靶场练习

靶场地址

https://xss.pwnfunction.com/

 页面显示如下

1、Ma Spaghet!

分析源码

从上面可以看出,我们的url中需要有somebody这样一个参数,如果有就get获取它,如果没有,默认值为somebody后面连接一个字符串,这里需要对innerHtml有一个比较清楚的认识。

<script>alert(1)</script>

发现没有弹窗,为什么呢?于是在官方文档查看

原因:不同点在innerHTML,所以发现该函数存在安全问题,该函数里的script不会被html5执行,所以我们用img标签来绕过

<img src=1 onerror=alert(1337)>

成功了

2、Jefff

我们直接分析上述代码,和上一个游戏一样,还是有一个jeff参数,但是这次多了一个eval函数,这个函数究竟起到什么作用了呢,我们依然看官方文档。


eval会把字符串当成javascript代码执行,所以我们尝试用以下alert(1337)

eval只会接一个参数,但会分情况,如果第二个参数是字符串,则eval只会接受一个参数,如果第二个参数是函数,eval则会接受该函数并执行

第一个方法

jeff=1";alert(1337);//

第二个方法

使用连接符

jeff="-alert(1)-"

3、Ugandan Knuckles

分析源码,发现我们的传参在input当中,而且还没有过滤双引号,那我可以尝试闭合双引号,逃逸出来,做我们想做的事情,我们使用onclick来实现这一关的需求,但是由于题目有不能交互这样的限制,那么我们就不可以使用onclick,毕竟这一关过滤了<>,但是我想到了input有着焦点的功能,那我们使用onfocus+autofocus来实现

?wey=aaa" οnfοcus=alert(1337) autofocus="

4、Ricardo Milos

查看源码后发现,这一关有action,而在action中可以使用伪协议,同时这一关会在进入页面后两秒钟自动提交,那就简单了

?ricardo=javascript:alert(1337)

5、Ah That's Hawt

这里我们有一个清晰的sink will.innerHTML,但由于过滤器删除了()`字符,因此无法调用alert(1337)。但是过滤器忘记了考虑属性的值可以是HTML实体编码的,因此我们只是对有效载荷进行编码。此外,我们对有效载荷进行URL编码,因为它有一些URL不安全的字符,如&。

通过分析代码,我们发现这一关有正则表达式,过滤了()`\并且是全局过滤,这样一来,不能使用()就对弹窗很不利,那么我首先想到的办法就是编码,利用编码进行二次解析进行绕过

原语句 <svg onload="alert(1337)">
实体编码 <svg onload="&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x33;&#x33;&#x37;&#x29;">
url编码 %3Csvg%20onload%3D%22%26%23x61%3B%26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值