1

我最近发现 XSS 是我网站的一个大线程。我已经设置了一些措施来防止这种情况,比如过滤用户输入,删除与 javascript 相关的任何内容

但是我最近发现javascript可以编码成十六进制代码可以在html img代码中使用,我尝试自己制作,我在一个XSS预防网站上找到了这个:

<img src=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69 &#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27 &#x58&#x53&#x53&#x27&#x29>

这段代码是javascript:

javascript:alert('XSS');

问题是,这段代码不能正常工作,我无法测试它是否真的有效。

这是 js 小提琴:http: //jsfiddle.net/CCgT3/

问题是它应该输出为

<img src="javascript:alert('XSS')">

但是小提琴显示的是这样的(萤火虫):

<img &#x58&#x53&#x53&#x27&#x29="" &#x70&#x74&#x3a&#x61&#x6c&#x65&#x72&#x74&#x28&#x27="" src="javascri">

十六进制有什么问题吗?

4

1 回答 1

3

尝试删除 src 属性中的空格:

<img src=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>

然后它应该工作。

于 2012-08-15T11:17:19.897 回答