hackinglab脚本关第十五之Principle很重要的XSS解题思路

本文详细解析了一道分数为300的XSS题目,通过不断尝试与分析,最终找到一种特殊的绕过方法,利用去除特定字符间的空格来欺骗过滤器,成功触发alert弹窗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Principle很重要的XSS

分值: 300

原理/原则/理念很重要.....不是所有的xss都叫特仑苏.. ^_^Take it easy!

 

 

解题思路:

首先,题目肯定设置了过滤规则,和14题的妖艳贱货不同,它的过滤器很奇怪,慢慢试。

我们先试一下<script>、javascript这种字符串会不会被过滤:

不出意外的被过滤了:

没事,超链接标签嘛,根据14题的思路,我们尝试闭合href属性,构造一波onmouseover事件:

这样输入试一下:

,很遗憾,结果如下:

哦哟,还是被发现了。走到这里,我们不禁怀疑是不是过滤了alert或者onmouseover这个关键字:那试一下alert有没有被过滤(虽然题目明确说了用alert显现,但是还是要尝试一波,实际操作中谁也不知道alert会不会被过滤掉):

onmouseover同理,可以发现这两个关键字没有被过滤,到这里继续尝试闭合href属性:

尝试14题的解法,猜想过滤器过滤第一个alert之后,字符串后面的东西不会被过滤掉:

然而还是gg,到这里,似乎走到了死路,我连将alert用jsfuck编码之后都尝试了,还是gg,好嘛,灵光一现之下构造如下的输入:alert'onmouseover=alert(1)>

这次迷之成功:

我是将alert'和onmouseover之间的空格去掉,就可以了。

下面来分析一下该题的过滤器工作原理:

和14题一样,通过空格分隔,查找alert这个关键字,发现第一个之后后面的就不会再生效,为什么这么说呢,构造如下输入:

该输入在>和alert之间存在一个空格,因此验证了我的猜想。因此只需要在alert'和onmouseover之间不留空格,过滤器会认为该字符串不等于alert,因此放行。

end.

转载于:https://www.cnblogs.com/Kog-Maw/p/8733850.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值