DOM破坏案例

目录

DOM破坏

编码问题

简单闭合""号使用onclick

onclick函数 焦点事件

标签使用

限制数字字母

js匿名函数绕过

覆盖

 DOM破坏

编码问题

 urlcode可以被识别 %+16进制

 <textarea> 可以解码不能执行

<script>&#97;&#108;&#101;&#114;&#116;&#40;&#57;&#41;&#59</script>  没有实体编码 script可以可以容纳文本 所有状态都是原始文本 sprint状态字符不会编码和解码  js语法中将其当做文本执行但是js不认识&符号所以不能执行报错

编码顺序 :实体编解码---->url编解码----->unicode编码

unicode编码编译的符号代码语法错误不能被html识别

unicode可以被js识别可以执行但是不能编码符号 不会运行

unicode将数字或者要执行的函数属性进行编码后 想要执行的话如果是数字以及属性没有加上‘ ‘的话会认为其是字符串会产生js语法错误。如(12)----》(/u0031/u0032)

简单闭合""号使用onclick

?jeff=aaa"-alert(1337)-"

闭合双引号 执行后续代码

onclick函数 焦点事件

onclick 是html的一个属性 添加点击功能执行我们的代码

不和用户交互 用onfocus autofocus自动触发

?wey=nb"%20οnfοcus=alert(1337)%20autofocus="

设置焦点事件autofocus自动触发

标签使用

img标签 利用onerror属性找不到图片后 触发后面的函数用 location属性来修改url后面的值的类型是其能被html读取

?markassbrownlee=<img%20οnerrοr=location="javasecript:alert%25281%2529>

%25是%的urlcode编码 题目过滤()我们使用%28%29代替时 接着使用%25来编码百分号绕过限制 

限制数字字母

固定方法利用编码进行绕过例如将函数alert(1377)编码为不包含字母数字的形式 其中包含符号不被html解析 需要再次使用编码将其转换为十六进制再放到html中执行

js匿名函数绕过

mafia=Function(ALERT(1337).source.toLowerCase())() Function构造匿名函数 source.toLowerCase()实现转换大写为小写 绕过正则 执行alert

使用函数进行进制转换 parseint函数转换alert 再使用toString转换回去  ..toString(30到36之间)用eval将输入的代码当做js执行

覆盖

可以通过覆盖标签以及原本的元素达到替换执行自己代码的效果可以用来过滤一些前端的防御框架

例如 

写一个标签 第一行 div

然后插入到body中去用img标签覆盖原来的document.cookie

第三行使用document.cookie直接取到我们上面定义好的标签里面去。

这是弱数据类型语言的特征

题目:  ?bommer=<a%20id=ok%20href="tel:alert(1337)">

这个例子中

        利用setTimeout需要创建一个ok元素 是一个字符串是一个可执行的函数代码 用a标签自动调用toString方法 让id=我们创造的OK 后面直接使用执行herf中的例如javascript:alert()由于前面的web框架防护机制 javascript可能被过滤掉 找到白名单上允许使用的协议即可


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值