【xss-labs-master】靶场通关详解(持续更新中...)

         XSS(Cross-site Scripting),中⽂名跨站脚本攻击。其原理是攻击者利⽤浏览器执⾏前端代码 (HTML、CSS、JavaScript)的特性,将恶意的JavaScript代码插⼊到⻚⾯中,当⽤户浏览⻚面时,导致恶意代码被执⾏。

         XSS 攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS) 的缩写混 淆,故将跨站脚本攻击缩写为 XSS,XSS 是⼀种在 web 应⽤中的计算机安全漏洞,它允许恶意 web ⽤户将代码植⼊到 web ⽹站⾥⾯,供给其它⽤户访问,当⽤户访问到有恶意代码的⽹⻚就
会产⽣ xss 攻击

level1

在name参数上尝试用简单的JS代码进行XSS攻击,看到下面代码执行成功

<script>alert()</script>


level2

我们还是执行简单的JS代码,发现没有反应

 查看源码发现我们的语句被过滤

使用"> <"闭合

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


level3

输入简单js语句发现页面没反应

查看源代码发现不光<>被实体化,符号也被实体化了,我们使用onclick

'οnclick='alert(1)

然后再点击输入框触发onclick事件即可 


level4

我们还是先输入简单的js语句,页面没反应

看看页面源代码发现我们的<>被注释掉了

我们继续使用onclick ,这次是"闭合

"οnclick="alert(1)


level5

我们还是先输入简单的js语句,页面没反应

 查看页面源代码,发现我们的语句被破坏

使用onclick试试 ,发现on变成了o_n

可以用a标签的href 属性来构造

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


 level6

我们还是先输入简单的js语句,页面没反应

查看源码发现和上一关一样,语句被破坏

使用a标签的href也被破坏

查看源码发现过滤了好多关键字

尝试看使用大小写能不能绕过,果然可以

"><a hRef=javascript:alert(1)>test</a>


level7

我们输入关键字看看什么情况,发现输入的href,script都被过滤了

看看大小写能不能绕过

还是不行,大写自动转换为小写了

既然如此,我们就试试双写绕过,比如script,可以写成scscriptipt,当script被删掉的时候,就变成了script,果然成功

"><a hrhrefef=javascscriptript:alert(1)>test</a>


 level8

我们先看看过滤了啥关键字,可以看到输入的值插入到了两个地方:input和href,可以发现, 添加了小写转化函数,还有过滤掉了src、data、onfocus、href、script、"(双引号) 

但是我们能利用href的隐藏属性自动Unicode解码,我们可以插入一段js伪协议 

javascript:alert()

利用在线工具进行Unicode编码 
https://www.matools.com/code-convert-unicode

点击"友情链接"即可


level9

先看看屏蔽了什么关键字

这里提示链接不合法,我们有必要去看看源码了

我们发现不仅屏蔽了很多关键字,还加了if语句

这个意思就是当传入的值没有http://就会执行if,为了防止false===false,我们需要向传入的值里面添加http://并用注释符注释掉否则会执行不了无法弹窗

加入http://并注释掉进行编码即可

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


level10

没有输入框了,我们看看源码怎么个事

这里是get传参t_sort,并过滤掉了<>号,不能闭合插入标签,但是我们还能用onfocus事件,因为这里输入框被隐藏了,需要添加type="text",构造payload

?t_sort=" οnfοcus=javascript:alert() type="text

点击输入框弹出


level11

我们先查看源代码,发现多出了一个input标签

猜测这是和referer头有关的 ,我们抓包构造闭合,构造鼠标移动事件

Referer: 1" οnmοuseοver=alert(1) type="text


level12

页面没输入框,老规矩我们先看看源代码

查看源代码发现还是多出来一个input标签,但是它的名字是t_ua,所以推测这是和User-Agent有关的,而且这一关对引号和on之类的没有进行过滤

我们抓包,从agent实现xss攻击

User-Agent: 1" οnfοcus=alert(1) type="text


level13

我们先查看源代码,根据前两关的经验,猜测这是和cookie相关的

我们按F12打开这个网页的cookie,cookie名为user,我们直接在这里改一下就好 

" οnclick=alert() type="text

 刷新以下点击框即可弹出


level14

我们先查看页面源代码,会定时跳到一个不存在的网站

再来看看网站源码,和页面源码一样

跟网站源码一样,这题本来是利用跳转到别的网站,在那网站去上传一个属性里面含有xss代码的图片,以达到弹窗的效果,网站挂掉了,就不做演示了


level15

这关没有回显和输入框,查看页面源码发现有ng-include

ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号

所以我们把存在漏洞的第一关上传上去

?src='/level1.php'

可以看到是成功包含进来的,尝试构造语句 

?src='/level1.php?name=<img src=1 οnmοuseοver=alert()>'

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值