分类归档: Security

如何防止网站被电信运营劫持弹广告

最近家里的光纤宽带在访问一些特定的行业网站的时候总时不时的被电信弹窗,这类利用 iframe 劫持网站弹广告的方式实在太下作了,其实就是一种变相的网络攻击行为。而且这种类型的广告经常会让正常网站的访问用户误解,影响网站的声誉,比如有不明所以的用户会问「你们网站原来没有广告的,现在怎么一访问就弹广告呢?」

如何有效避免这种 iframe 劫持? 有不少朋友分享过相关的技巧,比如常用的代码:

<script type="text/javascript"> 
    if (top.location !== self.location) {
    top.location=self.location;
 }
</script>

将上述代码嵌入页面头部,可某种程度上避免。不过,电信运营商的手段也在不断升级,稍加变化还能绕过去。

有研究人员给出了一段升级代码

<style> html{display : none ; } </style> 
<script>
if( self == top ) {
          document.documentElement.style.display = 'block' ;
   } else {
       top.location = self.location ;
   }
</script>

国外有个特定术语叫 Framekiller ,说的就是如何抵御这种劫持的事儿。不过这个代码也有可能再次被绕过去,就看运营商的流氓手段到什么程度了。或许最为有效的办法是加密传输内容(https)。Updated: 在电信运营商那里,这套玩意儿叫做「智能流量增值系统」,其实就是「DNS 劫持」。另外还有更高级的大杀器,「网络定向直投系统」。网络上能找到一些介绍信息。

网络定向直投系统(也称 iPUSH ),是由中国电信开发的划时代网络技术,可以以各种格式定时定点将广告推送到网络在线用户端的浏览主页面。 通过这个传播平台,不论电信用户在浏览器地址栏中输入任何网址进行浏览,网络定向直投系统均可将广告主动送达用户,不依赖于某个固定的网站。

网络定向直投系统「原理」:基于宽带接入网,通过对用户上网行为的分析,在用户上网时、或正在上网的过程中,系统主动、定向、策略性、个性化的向用户推送广告宣传信息。 方式:根据用户当前浏览的网站或匹配对应的关键字,向用户推送图片、Flash、视频等多媒体交互式广告内容。有朋友告诉我,这套玩意儿「通过对电信核心线路的过滤,把目标 HTTP 包整个给替换掉,换成他们自己的页面」,总之电信运营商为了牟利,上的全是黑客级手段。

直白的说,就是在用户好不知情的情况下强行插广告,非常的流氓,非常的下作,非常的无耻。

单纯从用户端无法屏蔽这种流氓广告,建议自己有网站的朋友们,工程师们,想办法从网站层面抵制这种行为,别让流氓们占了便宜。也欢迎大家给我补充一下更好的办法。我们抵制一点,他们就会收敛一点。

此文位于 Security on by .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

借助 Complemento 测试 DoS 攻击风险

前几天从 Sourceforge 上的一篇文章了解到 Complemento 这个工具包,其中的 LetDown 用来做网站网络的压力测试,预防 DoS (拒绝服务)攻击还是不错的,起码可以熟悉一些常见的场景。另外,这个工具可以比较方便的嵌入到 Python 脚本中,用来做更大规模的压力测试(注意随意测试是有风险的)。

Complemento 的 HowTo 文档比较完备,可以用作参考。这个工具包现在也已经内置到 BackTrack 这个用作安全渗透的 Linux 发行版中了。

最近一两年,DDoS 攻击在国内现在更加”流行”而且商业目的明显,经常用做打击竞争对手的武器。当然现在也不只是打Web服务器,也可能会打打 DNS 什么的…

其实我非常好奇各个公司的技术人如何应对 DDoS 的,除了拼硬件,拼带宽,或许饭桌和钱是最好的防御手段。

EOF

BTWNessus 仍然是扫描系统漏洞的最佳工具,居家旅行…必备…

关于支付宝证书错误 800A138F

关于支付宝的证书使用中出现的 800A138F 错误是个老问题了。这里尝试对这个问题做说说个人看法。

历史原因说来话长,我尽量说得简要一些。首先需要涉及证书(Certificate )在操作系统中通过 ActiveX 形式的登记(Enrollment )这事儿。在 Windows XP 之前,延续使用的是 XEnroll.dll 这个库接口。但是因为这东西比较古老,且出于”更安全”、更方便开发的角度上考虑,从 Windows Vista 与 Windows Server 2008 开始引入 CertEnroll.dll (参考)。这个差异也导致了支付宝证书在不同版本的操作系统间的导出再导入可能会出现问题。

一般来说,错误信息类似如下:

错误原因:'cenroll' 为空或不是对象,错误代码:800A138F
Microsoft XEnroll,在产生密钥对时失败!错误原因:'null'为空或不是对象,错误编码:800A138F

(这个错误信息表明是使用 XEnroll.dll 过程中出现了问题。)

不知出于什么考虑,微软上 Vista 的时候居然没考虑到 XEnroll.dll 这东西没了,向后兼容性如何处理呢? 而有些第三方开发厂商也不是未卜先知。所以,Vista 大量涌入市场的时候就暴露出来了问题(当然第三方开发商也要狠狠的打自己自己一个嘴巴)。微软的拿手解决方案就是发行一个补丁 ,在 Vista 和 Windows Server 2008 上也能使用老的 “Certificate Services Web enrollment pages” (其实就是给 操作系统里安装一个 XEnroll.dll 库)。参见知识库 922706

这个 800A138F 错误大多数时候出现在 Vista 系统上。也是有很多其他客观因素的,其中比较主要的一个是 User Account Control(UAC)这个特性带来的麻烦。UAC 默认级别替用户”多考虑许多”,安全级别控制的很好,好到这个安全成了麻烦。这个如果通过系统管理员用户一项一项的去设置的话,是可以对付安装上的,但是不可避免的是,很多用户不是操作系统专家,甚至不知道什么是”系统管理员”,所以如果把 UAC 关闭的话,可能会直接省了不少麻烦,但是这样的话,又有很多用户会觉得安全性受到了威胁,也难免抓狂,这个选择很是两难。

除了 Vista ,在 XP 上也会遇到这个错误。一般来说,某些第三方的小工具会禁止 Microsoft Certificate Enrollment CAB (这也是非常头疼的一个问题),这种情况下可以考虑修改注册表或者是在这类工具的插件管理的地方把这个 CAB 放开。或者考虑修改注册表的方式 (参考)。

我的个人建议是:不要使用 Windows Vista !(请默念10遍:Windows Vista 是个烂系统) 这是个微软内部都承认失败的操作系统。使用老的 Windows XP 吧,毕竟,微软已经承诺对 XP 延续支持到 2011 年了。至于 Windows 7 ,尽管叫好声不断,但我们现在只能期待。

另外,对于 IE 用户,建议使用 IE7 或者 IE8 (IE6 出来已经有 10 年,老掉牙矣,且从安全性的角度上考虑也的确不佳)。

以上是对支付宝证书错误 800A138F 的一点非专业解释,兄弟我并非 Windows 操作系统专家,期待对 Windows 操作系统更为熟悉的朋友进行补充以及纠正。现在情况已经如此,一刀切解决问题似乎不太现实,没有理由推卸任何责任(尽管个别读者可能这么认为),只能尽量、尽快改进–现在已经在和合作方一起进行对此错误的处理!

用户的痛苦我也是感同身受!这并非客套话。

EOF

注意:这篇文章有实效性,且包括作者本人主观看法。

更新:从用户的反馈来看,Windows 7 比 Vista 易用性和性能好了很多,推荐使用。

Ratproxy — Google 的 XSS 检测工具

跨站脚本攻击(XSS, Cross Site Scripting) 可能是目前所有网站都比较头疼的问题,Google 也不例外。这次 Google 又做了一次雷锋,把内部用来审计 XSS 的工具开源了:ratproxy

Google_ratProxy.png
Ratproxy 工作流程:

  • 1) 运行脚本后,会在本地启动一个代理服务器,默认端口是 8080 ;
  • 2) 浏览器设置这个地址 (http://localhost:8080)为 代理地址 ;
  • 3) 浏览要测试的 Web 页面,进行实际登录,填写表单等操作(这些动作会被代理服务器捕捉并做点”手脚”发给待检测的页面),ratproxy 会在后台记录相关的 Log ;
  • 4) 用 ratproxy 提供的工具解析 Log 并输出 HTML 进行分析;
  • 5) 修正比较严重的问题后,跳回到第一步,直到评估通过为止。

在我的 Ubuntu 下测试了一下,需要说一下的是,本地系统需要安装 libssl-dev 与 openssl 。

$ sudo apt-get install libssl-dev openssl 
$ cd ratproxy ; make

然后就可以提交类似:

$ ./ratproxy -v . -w foo.log -d foo.com -lfscm 

然后,人肉点击相关的页面进行测试了。这个工具的设计思路还是很值得借鉴的,推荐对安全感兴趣的同学读一下源代码。

ratproxy 的作者是 MIchal Zalewski,一个波兰的白帽子黑客。他的个人主页上能找到更多有趣的工具。

EOF

另参见另一份试用报告

Updated:Google的另一个工具:Skipfish 尤其值得关注。