窥探用户隐私的幕后之眼 – Web Bugs

2014-01-13 +6 246269人围观 ,发现 6 个不明物体 WEB安全

写在前面

其实我在翻译这篇文章之前,觉得这可能是一种基于客户端脚本的技术,类似于xss,但是通过翻译了解到,通常web bugs都是由客服务端脚本编写的,比起一些黑客那它来进行入侵,更多的是官方在用户不知情的情况下使用web bugs来搜集用户信息。

Introduction(概述)

现如今,互联网技术使人们的日常生活发生了翻天覆地的变化,人们通过鼠标和键盘互相交流信息。信息的繁杂与多样,是以前的人们从不敢想象的。从互联网上获取信息的速度比以前在书本上获取信息的速度提高了好几倍。很多作电子商务的公司把他们的产品放在互联网上进行出售用户可以使用信用卡或者网上银行进行购买,而不是要进入实体的商店。不管是个人还是企业,都在互联网技术中受益良多。

不过,随着我们越来越依赖互联网,互联网犯罪也运应而生。如下是一些常见的犯罪手法。

Phishing(钓鱼攻击)
Exploiting web vulnerabilities like XSS, CSRF, Clickjacking , etc.(WEB漏洞)
Zero day exploits (零日漏洞)
Authentication bypass related vulnerabilities(权限绕过)
Spamming, etc.(垃圾邮件)

有很多方法,可以捕获到恶意用户的所作所为。web bugs 就是其中一种。

有些时候web bugs是以图片的形式出现,存在于e-mail ,web页面 ,或其他支持HTML格式的媒体中,记录用户行为。

Information collected when a web bug is viewed(web bug所要收集的信息):

IP address of the client who visits the web page(IP地址)
The URL of the web page where the web bug is located(URL地址)
URL of the web bug image (加载地址)
Time when the web bug was visited/viewed(访问时间)
User Agent of the client who viewed the website(浏览器信息)
Previously set cookie value(cookie)

How to find a web bug on a web page(如何发现web bugs):

经验丰富的网民可以通过一些明显的特征知道他们被监控了(比如一个广告栏),但是web bug却不会轻易被发现,它通常会藏在用户想不到的地方,监视着你的一举一动。

想要找到web bug 你首先得查看网页源码,比如下图这样。

仔细看img标签,你会发现他并不是一个图片,而是一个PHP文件。

我们再回到正常的页面,正常浏览它,没有任何问题。

为了找到web bug 我们使用放大镜把页面放大,当放大到足够倍数的时候,按下CTRL+A会发现左上角出现了一个蓝色小点。

正如你所见,web bug只以一个像素的形式出现,正常情况,你根本就找不到他。

不过,web bug不会只以这一种形式出现。

Looking for web bugs in email messages(寻找邮件中的web bugs):

在得知你邮箱地址的前提下,攻击者可以发送包含web bug 的垃圾邮件来进行攻击。

下面是两个例子

<img
 width=’1′ height=’1′ src=”http://www.m0.net/m/logopen02.asp? 
vid=3&catid=370153037&email=test %40example.net” alt=” “>

<IMG SRC=”http://email.bn.com/cgi-bin/flosensing? x=ABYoAEhouX”>

Placing web bugs into a web forum(在论坛中内嵌web bugs):

很多论坛支持用户在他们的签名或者回帖中包含图片,通过查看论坛的文档你得知他们是否支持图片标签。

[img]http://w1.example.com/webbug.php[/img]

不过有些论坛会检查,标签中包含的文件,禁止非图片的文件。

不过我们可以使用这种放发来绕过。

[img]http://w1.example.com/webbug.bmp[/img]

之后在你的apache服务器上设置,重定向。只需在httpd.conf文件中这样设定。

Redirect /webbug.bmp /webbug.php


Are all invisible images web bugs?(所有的不可见图片都是web bug吗?)

显然,不是所有的不可见图片都是web bug,有一些不可见文件,是为了校准坐标轴。不过web bug所使用的URL通常

会指向一个外部的网站,这才是他的特点。


Uses of web bugs on web pages(web bugs在页面上的作用):

广告公司使用web bug获取用户的个人信息,并存储在数据库中,从而进行更为精准的广告投放。

另外,web bug还可以用来统计访客的数量,以及用户的访问地点。


Use of web bugs in emails(web bugs在邮件中的作用):

邮件中的web bug则 可以用来检测某一条消息是否被阅读。获取收件人的IP地址。

而在公司内部,web bug则可以用来统计某一条信息,被传阅的次数。


Use of web bugs in the “junk” folder of a email service(web bugs在垃圾邮件中的作用):

很多情况下web bug在营销活动中被用来统计,用户收到邮件情况。

他会判断用户是否从垃圾邮件文件夹中打开这封邮件,如果用户打开过邮件,那么这个用户的邮箱地址,

将不会出现在下一次的发送列表中。(很有节操)


Privacy concerns related to web bugs(基于隐私的争议):

web bug一直是一个争议很大的技术,因为用户的操作可以很容易的被第三方监控到。一般的用户也会对其他人可以看到自己的邮件内容万分头疼。

同时,很多使用web bug的公司也在可以回避隐私条款这类问题。诸如很多提供广告业务的公司也没有很健全的隐私保护策略。

"当你访问一个网站,在你的浏览器加载页面之前,就有人知道你的一举一动这是一个耸人听闻的故事",Ira Rothken说 ,"这是web bug危险的一面。"Ira Rothken是一位科技公司的律师。

但是web bug也有好的一面,公司使用它可以方便的管理员工的身份认证和个人资料。大型的网站也可以使用它更好的管理用户的cookie。

 根据 http://www.policymic.com 报道从2005年开始,美国就开始使用web bug在互联网上收集信息了。

2007年,FBI使用基于web bug技术的工具找到了邮件炸弹的嫌疑人。


Preventive measures(防御方法):

在email中阻止web bug 是一个格外简单的事情,只需要查一下文档怎样禁止HTML解析或者禁止外部图片即可。

一些邮件服务商例如Gmail,默认就会屏蔽掉外部图片。一些最新的邮件客户端也会有类似的设定。

而在web应用中,完全的防御web bug是不可能的,除非完全禁用图片的解析。像IE的插件Bugnosis ( http://www.bugnosis.org ) 火狐的插件 Ad Block ( http://adblock.mozdev.org/ ) ,都可以选择性的屏蔽掉一些著名的web bug。一些反间谍工具如,Ad Aware 和 Spybot Search and Destroy 则可以帮助你清理一些web bug 留下来的cookie。


Creating your own web bug in PHP(编写自己的web bugs):

这段PHP代码可以抓取用户所使用的,操作系统,浏览器型号,用户IP,端口,语言,编码模式,并保存到数据库中。

<?php
header( 'Content-type: image/gif' );
echo chr(71).chr(73).chr(70).chr(56).chr(57).chr(97).
      chr(1).chr(0).chr(1).chr(0).chr(128).chr(0).
      chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).
      chr(33).chr(249).chr(4).chr(1).chr(0).chr(0).
      chr(0).chr(0).chr(44).chr(0).chr(0).chr(0).chr(0).
      chr(1).chr(0).chr(1).chr(0).chr(0).chr(2).chr(2).
      chr(68).chr(1).chr(0).chr(59);
//data gathering variables
$port=$_SERVER['REMOTE_PORT'];
$ip=$_SERVER['REMOTE_ADDR'];
$encode=$_SERVER['HTTP_ACCEPT_ENCODING'];
$lang=$_SERVER['HTTP_ACCEPT_LANGUAGE']; 
function os_info($uagent) {
// the order of this array is important
global $uagent;
$oses = array(
				'Win311' => 'Win16',
				'Win95' => '(Windows 95)|(Win95)|(Windows_95)',
				'WinME' => '(Windows 98)|(Win 9x 4.90)|(Windows ME)',
				'Win98' => '(Windows 98)|(Win98)',
				'Win2000' => '(Windows NT 5.0)|(Windows 2000)',
				'WinXP' => '(Windows NT 5.1)|(Windows XP)',
				'WinServer2003' => '(Windows NT 5.2)',
				'WinVista' => '(Windows NT 6.0)',
				'Windows 7' => '(Windows NT 6.1)',
				'Windows 8' => '(Windows NT 6.2)',
				'WinNT' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
				'OpenBSD' => 'OpenBSD',
				'SunOS' => 'SunOS',
				'Ubuntu' => 'Ubuntu',
				'Android'=>'Android',
				'Linux' => '(Linux)|(X11)',
				'iPhone'=>'iPhone',
				'iPad'=>'iPad',
				'MacOS' => '(Mac_PowerPC)|(Macintosh)',
				'QNX' => 'QNX',
				'BeOS' => 'BeOS',
				'OS2' => 'OS/2',
'SearchBot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)'
);
$uagent = strtolower($uagent ? $uagent : $_SERVER['HTTP_USER_AGENT']);
foreach($oses as $os=>$pattern)
if (preg_match('/'.$pattern.'/i', $uagent))
return $os;
return 'Unknown';
}
$osman=os_info($uagent);
//SQL connection
$con=mysql_connect("localhost","","");
if(!con)
	{
	die('Could not connect '.mysql_error());
	}
mysql_query("use test;");
$sql="insert into test values('$ip','$osman','$port','$encode','$lang')";
mysql_query($sql,$con);
mysql_close($con);
?>

Inserting the web bug into your webpage(在网站中使用web bugs):

使用下面的语句,就可以把web bug引入你的页面

<img src=’webbug.php’ width=’1′ height=’1′ >

References:

[原文地址,译/FreeBuf实习小编wyl]

发表评论

已有 5 条评论

取消
Loading...
css.php