网站地图    收藏   

主页 > 后端 > 网站安全 >

XSS编码的那些事 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 0times;01 标签属性里的那些事比如img标签的src属性、div的style属性、a标签的href属性 等等以下代码,a标签的href属性a href=#106;#97;#118;#97;#115;#99;#114;#105;#112;#116;#58;#97;#108......

0×01 标签属性里的那些事

比如img标签的src属性、div的style属性、a标签的href属性 等等
以下代码,a标签的href属性
 

<a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;
&#39;&#88;&#83;&#83;&#39;&#41;">点击我</a>



(备注 &#106;为十进制的编码  &#x6A 为16进制的编码,他们之间中间多了个x,你懂的16进制0x01的x就是代表16进制)

把以上代码放在浏览器上运行看效果源代码

<a href="javascript:alert('xss')">点击我</a>

这个过程貌似为


A攻击者请求(恶意代码)—–服务器端接收我这个编码的代码,并判断是否存在恶意代码,如果不存在则返回给浏览器———–浏览器则负责解析我这个编码的代码——–攻击代码已经呈现(备注:好像是这样的,如果不对,望大牛们指点啊)
接下来我们再分析下 标签属性是否可以解析\u003c、\x3c 等编码

<a href="\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28\x31\x29">test</a>


经过测试,浏览器的属性解析不识别这种,那这个在什么时候识别呢?请看下面介绍。

0×02 标签的事件与script标签

对于上面的问题我在这里做出来onerror=”alert(‘\x6a’)” 这样就没问题啦。

 

接下来我们来看看这个script标签

var t="\u003cimg src=x onerror=alert(1)\u003e";
document.write(t);
alert("\x3c");

以上代码都可以识别,有木有找出规律?
但是这样的代码 能被解析,但不能被执行

var x="&#x3c;img src=x onerror=alert(2)&#x3e;";
document.write(x);

你们可根据以上这些规律,编写出适合自己业务的代码过滤方法

你现在了解style属性里面的expression过滤是否有用,是否考虑到编码的情况?

0×03 总结

这些字符编码,是很多开发者容易忽略的。望看了这篇文章,对你开发安全的网站程序 有帮助

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论