【问题标题】:Using PHP/JavaScript link to get information about site visitor使用 PHP/JavaScript 链接获取有关站点访问者的信息
【发布时间】:2014-12-02 23:23:13
【问题描述】:

有人试图对我进行网络钓鱼,他们假装是我的亲密朋友之一,以羞辱我们俩。此人创建了一个虚假的电子邮件帐户,冒充此人,并试图从我这里获取个人信息。我和我的朋友确认这实际上不是他,现在我们正试图找出它是谁。

我想向他们发送一个指向某种 PHP 或 JS 页面的链接,以至少收集一些关于他们的客户端(浏览器、操作系统,也许是 ISP 位置?)的信息,然后将它们转发到一个实际的网站(例如 youtube 视频或其他内容)。

对 PHP 有非常基本的了解,如果有任何类型的脚本可以让我收集一些基本信息,我将不胜感激。

谢谢!

【问题讨论】:

  • 两个错误不等于一个正确。但是你为什么不只是托管一个网站并检查 Apache 日志,会容易得多。如果这个问题会危及您的身份,我会联系当局。

标签: javascript php phishing data-harvest


【解决方案1】:

PHP:

数据检索

基本的重定向可以很容易地完成(在 PHP 中,在任何输出之前):

header("Location: http://....");

但是,如果您发送此内容,他的浏览器将不会在您的虚假页面上加载任何 javascript 或 HTML。您仍然可以从$_SERVER superglobal variable 收集以下内容:

  • HTTP_USER_AGENT - 无论他的浏览器发送什么作为它的标识
  • REMOTE_ADDR - 他的IP(或服务器代理IP)

这是整个$_SERVER variable dump。

数据保存

在 PHP 中保存数据非常容易。如果你很懒,你可以使用 file_put_contents:

file_put_contents("info.txt", print_f($_SERVER, true));

print_f 中的 true 使函数返回字符串,而不是打印它。

Javascript

数据检索

Javascript 也可以让您访问有关浏览器的信息。但是任何个人信息只有在用户明确允许后才能被检索到。

然后可以使用以下方式完成重定向:

window.location.href = "http://...";

这就是你能得到的:

未经许可

经许可

在用户许可的情况下,可以检索到真正有趣的东西:

数据保存

这就是复杂的地方:您需要时间将数据从用户的浏览器发送到您的服务器。可能的解决方案:

Synchronous request

通常,在加载/发送数据时,javascript 发送请求,分配完成和结束时要执行的函数:

//Example of loading next page with AJAX
var req = new XMLHttpRequest();
req.open("POST", "http://...");
//This function will be started after the request finishes
req.onload = function() {
    showPage(this.responseText);
}
//The request starts and the javascript thread ends
req.send("page=2");

现在,如果您将用户重定向到其他地方,请求可能会停止。但是,您可以将请求设置为阻塞/同步(或者您可以在请求完成后重定向,这可能是可疑的)

//Example of sending user info synchronously
var req = new XMLHttpRequest();
req.open("POST", "http://...", false);
//Let getuserInfo be function that creates the data
req.send(getUserInfo());
//Redirect when done
window.location = "http://...";

在第二种情况下,浏览器可能会变得无响应,这实际上比卡在空白页面更可疑。

navigator.sendBeacon

Read on MDN. 不适用于所有浏览器。

心理学

我要寻求的解决方案不是通过计算机黑客攻击,而是通过社会工程。我会玩他的游戏并最终发现他是谁(前提是我认识现实生活中的那个人)。每个人都有行为和表达特征。他们假装自己是别人的事实并不像看起来那么重要。
事实上,最好使用计算机用户来破坏任何计算机安全性。任何其他类型的安全或保密也是如此。

【讨论】:

    【解决方案2】:

    您可以获取一些信息,例如 IP 和用户代理,并将其写入文件。

    <?php
    $fp = fopen("Output.txt","a");
    $visitorIP       =   addslashes((getenv(HTTP_X_FORWARDED_FOR)) ? getenv(HTTP_X_FORWARDED_FOR) : getenv(REMOTE_ADDR));
    $visitorBrowser =   addslashes(( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : 'Browser undetectable.');
    $User_Info = "IP: " . $visitorIP . "\t\tUser Agent: " . $visitorBrowser . "\n";
    fwrite($fp, $User_Info);
    header( 'Location: http://REDIRECTURLHERE' ) ;
    ?>
    

    结果将保存在名为 Output.txt 的文件中。从这里你可以重新获得它

    【讨论】:

    • 使用HTTP_X_FORWARDED_FOR 是一些网站无法找出谁入侵了他们的原因。 User can set the X-Forwarded-For header。当然,不是毫无戒心的用户。
    • 当然,如果有人想欺骗他们的 IP、User Agent 或 Referrer,他们可以轻松做到。但毫无戒心的用户不会改变它。
    猜你喜欢
    • 2022-11-19
    • 2013-03-18
    • 1970-01-01
    • 2011-03-27
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多