使用img十六进制代码进行xss攻击

时间:2012-08-15 10:58:45

标签: javascript html xss

我最近发现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">

十六进制有问题吗?

1 个答案:

答案 0 :(得分: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>

然后它应该工作。