xss二次循环

本文详细分析了一种复现循环问题的场景,涉及HTML标签属性处理。在尝试删除<img>标签中的src属性时,由于循环机制,onerror属性意外保留并前移。作者通过添加额外属性并多次尝试,揭示了如何利用这种机制来控制输出的属性。讨论了DOM操作的细节,并提出了绕过一次循环的方法。
摘要由CSDN通过智能技术生成

复现循环问题

一、一次循环

请添加图片描述
过滤方式:截取#后面的值,创建一个div,把#后面的值赋值给div,然后使用querySelectorAll抓div的子元素,获取它的属性,再把子元素的属性全部删除。

我们先输入<img src=1 οnerrοr=alert(1)>试一下,但是运行后得出的结果是它只删除了一个src,把onerror留了下来
在这里插入图片描述
用断点调试一下可以得到:在进行循环的过程中,attr首先匹配到的是src元素,然后在循环过后直接删除,剩余的哪个onerror自动往前移动,onerror替代了src第一个的位置,它就变成了第一个,但是由于刚开始循环的时候,已经把第一个给循环了,再循环下一个的时候它没有了,所以结束循环了。所以可以利用这一机制,将img标签中放入其他的属性,删除其他的属性来让我们要输出有用的属性进行输出。同时因为删除元素时因为索引问题我们不清楚到底删除了哪些元素,所以我们仅需要进行多次尝试就可以绕过一次循环:<img test=aaa src=1 title=bbb οnerrοr=alert(1)>
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值