xss绕过:prompt(1)

本文详细探讨了多种XSS绕过技术,包括闭合引号、HTML不严谨性、call函数、注释绕过、@的分割作用、换行连续使用等。通过实战例子,如http://prompt.ml/的练习,解释了如何利用这些技巧成功触发XSS弹窗。同时,提到了Unicode的行分隔符和段分隔符在JavaScript中的应用,以及如何利用parseInt函数和SVG命名空间进行XSS攻击。
摘要由CSDN通过智能技术生成

本次练习网站:http://prompt.ml/
练习网站
要求:弹窗成功出现you win

0x0:闭合引号

在这里插入图片描述

输出在value内,首先闭合再进行prompt(1)的弹窗。

1"><script> prompt(1)</script>

在这里插入图片描述

0x1:html不严谨性,单标签自动补全功能

在这里插入图片描述

它过滤了一个完整的标签,当<…/> 存在便过滤为空。为此利用html的自动补全,单标签的>符号功能。

<img  src="1" οnerrοr="prompt(1)"

在这里插入图片描述

0x02:call函数

在这里插入图片描述

因为这里=与( 都被过滤了。因此我们可以使用Unicode编码,不使用html实体编码是因为它不能在JavaScript中使用回无效的。

关于call函数:	call把eval绑定在绑定,直接用eval执行字符串,即等价于eval(`prompt(1)`)的执行
eval() 函数会将传入的字符串当做 JavaScript 代码进行执行

call传两个值:eval的指向,与eval执行的值
第一个传值为空时指向Windows的全局变量,后返回字符串prompt(1)。
因为指向全局变量,在全局中有prompt(1)函数,如此就执行这个函数
在这里插入图片描述
字符串是eval来执行的,最后返回的是给eval这个返回值
call收到一个值为空于是指向Windows的全局
在这里插入图片描述
aaaaa在Windows全局没有这个函数
在这里插入图片描述
这里直接将eval执行相当于别名调用,这里就想到与call方法强行指向prompt(1),但是js官网为了安全指向了全局,但是目前第二个参数没有传值,所有undefind。
call的传给指向与执行值
eval的别名:call在这传的值不是空,而是具体的值时就是他的别名。 JavaScript中默认别名指向全局

<script>eval.call`${
       `prompt\u00281)`}`</script>

在这里插入图片描述

0x0

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值