xss labs靶场通关笔记

 xsslabs 靶场前五关的通关心得:

第一关:这一关没有做任何限制。直接在 URL 中构造参数name=<script>alert('xss')</script>即可。查看源码可以发现,通过$_GET获取name的值后,没有进行过滤就直接输出到了 HTML 中,从而导致 XSS 漏洞。

第二关:此关需要逃逸双引号。源码中使用了htmlspecialchars函数进行特殊字符转换,原本的输入点无法利用,但可在value字段中进行突破。构造参数1"><script>alert(1)</script>,通过逃逸双引号并添加新的<script>标签来触发 XSS。或者使用 JavaScript 的点击事件,如1"οnclick="alert(1)、1"οnmοuseοver="alert(1)等也可触发。

第三关:这一关的<>号都被实体化了。从源码中可以看出,单引号没有被转义且参数是用单引号闭合的。由于大于号被转义,不能使用需要用到标签的语句,而是利用事件触发的形式来绕过。例如构造参数'οnmοuseοver='alert(/xss/),当鼠标移动到输入框时就会触发弹窗。

第四关:与第三关类似,双引号闭合,且小于号被转义了。同样可以采用第三关的事件触发方式,构造参数"οnmοuseοver="alert('xss')"来实现 XSS 攻击。

第五关:此关提示使用 JavaScript 伪协议。可以构造href属性来绕过,参数为">点击<。通过构造带有 JavaScript 伪协议的<a>标签,实现点击触发 XSS 弹窗的效果。
 

第一关我们直接添加<scrip>标签即可,h2标签可以解析<scrip>标签,这就是最简单的方法。

我们先按第一关思路。在方框里输入<script>alert(1)</script>,没有成功。如下:

在这里我发现注入点在value这里。第一点我就想到闭合标签,如果逃逸不出双引号限制,咱们啥都做不了。

Leve3

先随便注入

试注入后,我发现我输入的全部被实体转义了,而htmlspecialchars()没做设置,默认过滤双引号。

Leve4

先尝试注入

我发现< >被过滤掉了。
我再次尝试注入

Level5

先尝试注入

这里很明显,它把script标签过滤了。
这里在尝试是否可以逃逸出双引号

我发现< >被过滤掉了。
我再次尝试注入

Level5

先尝试注入

这里很明显,它把script标签过滤了。

这里再尝试是否可以逃逸出双引号

可以看到是可以逃逸出来的。
这样我们就有思路了,用a标签再次尝试注入

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值