突然的发现
今天上网冲浪,突然想起来有一种神器,叫废话生成器
,之前是在哪里下了个软件玩了一下,然后就给删除了,因为我觉得这个软件不过就是调用了一个web接口实现的,一个网页能解决的事还要我下一个软件。
于是乎,我搜索找到一个网站
点击生成后,一篇牛头不对马嘴的文章生成了,当时就挺好奇的,我多次点击生成,反应速度也快,而且内容相似
我ctrl + f进行搜索这个关键字。
看到结果的瞬间脑子里突然有个想法,有没有可能有XSS漏洞呢,因为结果直接反应在网页上
于是乎
果然,有XSS注入,我换成了图片
很哇塞有没有
漏洞的成因
通过进一步研究,发现是一个DOM型的XSS漏洞,因为根本就没有网络请求
看了下源代码,漏洞应该是从这里产生的
使用了InnerHtml,也是够省事了,而且变量命名和函数命名我也是第一次见,直接用中文了
其他
我去逛了很多其他相同功能的网站,居然无一幸免!全部都有DOM型的XSS,要不是看了源码,我真以为用的同一套源码呢
如何防范
对于用户的输入要回显在网页上,除了服务器要使用HTML编码外,在本身js尽量避免使用innerHTML,而是用innerText