xss-labs靶场实战

目录

环境搭建

第一关

第二关

第三关

方法1:

方法2:

第四关

第五关


环境搭建

此博客为个人学习笔记,仅做参考使用

xss-labs下载地址GitHub - do0dl3/xss-labs: xss 跨站漏洞平台

快速下载:点击此处

如果不想自己搭建可以使用博主的网页(尽量自己搭!)

博主自己搭建的xss-labs网页靶场:快速使用

基础触发标签学习可以参考:XSS常见的触发标签

                                               HTML 事件参考手册

搭建完毕后打开靶场,点击图片正式开始xss之旅吧!

第一关

可以注意到,通过给name变量赋值,网页内容也会发生相应的改变。

然后去查看网页源码可以观察到get传参name的值hello插入了html里面,还回显了payload的长度

url?name=<script>alert()</script>

将name赋值为<script>alert()</script>即可通关本题

第二关

来到第二关

第二关提供了一个输入框,我们先试试输入一下数据

网页源码:

发现和第一关差不多,那么我们就试一试第一关的方法,输入

<script>alert()</script>

发现并没有通关,而且还原样输出了代码

然后我们再去看一下源码

发现我们输入之后输出的代码中的"<"">"分别被"&lt;""&gt;"实体化注释掉了,并且发现我们输入的内容是一个文本框的value值,这样浏览器是不会执行我们的注入语句的,所以我们要构造标签闭合。

尝试一下用  ><script>alert()</script><  把input闭合掉,发现还是没有通关,然后检查一下。

发现参数是被双引号闭合着带入到input标签中,所以在开头构造一个  ">  把标签input标签闭合掉,再在之后拼接一个语句,这样我们构造的标签就能顺利被编译,而不是简单字符串了,另外还需要在结尾构造一个  <"  把input剩下的尖括号闭合掉。

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

恭喜第二关通过。

第三关

第三关也是和第二关一样有个输入框,我们先输入一些值看看

和第二关出奇的相似,那么我们可以去看下网页源码

发现value是用单引号包着数据的,那么我们根据第二关的经验,可以构造单引号回路闭合。输入

'><script>alert()</script><'


发现没有通关,然后我们再去检查一下网页源码

第三关博主自己的网站出问题了,我先改改,过几天继续写吧...

暂时先用自己的靶场弄吧(2024.7.18)


终于改好,继续继续~(2024.7.20)

接着看网页源码,我们发现输入的"<"">"分别被"&lt;""&gt;"实体化了,这就影响了代码的运行。

但是我们还可以利用其他方法进行xss注入,这里我们可以利用onfocus事件绕过。

 onfocus 事件在对象获得焦点时发生。

Onfocus 通常用于 <input>, <select>, 和<a>.

提示: onfocus 事件的相反事件为 onblur 事件。

onblur 事件会在对象失去焦点时发生。

Onblur 经常用于Javascript验证代码,一般用于表单输入框。

参考网页:onfocus 事件 | 菜鸟教程 (runoob.com)

所以我们可以利用这个事件来绕过<>号的过滤已达到执行js的目的,构造payload

方法1:

利用onfoucus事件,我们得到payloa为:

'onfocus="alert()"

 或者

'onfocus=javascript:alert()'

输入之后再次点击输入框就可以完成本关了

方法2:

利用onblur 事件,我们得到payloa为(和方法1差不多,只是触发方式不同):

'onblur="alert()"

以上2种方法皆可通关。

第四关

老样子,直接看网页源码吧~可以观察到这个题还是input输入,然后又是双引号闭合方式(有没有种熟悉的感觉),这题和第二关竟然如此相似。那么我们直接用第二题的payload试试

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

但是并没有通关

继续看网页源码吧

这一关居然直接把我们的<>号给去掉了!但是想一下第三关的方法,我们并没有用到<>号。

然后我们试一下第三关的payload,并使用双引号进行闭合

" onfocus="alert()" "

 或者

"onfocus=javascript:alert()"

输入之后搜索,然后再次点击输入框框就通关了,和第三关通关方式相似。

第五关

话不多说,直接看网页源码了~

发现这个地方居然又和第四关出奇的相似!!!(我觉得肯定不会这么简单)

先试试第四关的payload

"onfocus=javascript:alert()"

未完待续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值