domingo, 30 de junho de 2013

Inclusão de arquivos não permitida - Ataque e proteção

Pessoal Bom dia, hoje iremos falar sobre inclusão de arquivos não permitida, começaremos mostrando um código vulnerável:

Observe o seguinte exemplo:
<?php

$acao = $_GET['acao'].'php';

/*
considere que a váriavel $acao, será usada para receber, o nome da página que será chamada por meio de um include.
*/


include("$acao");

?>
como exemplo o nome da página que passa o parâmetro será:

www.teste.com.br/?acao=pagina

O ataque:

se modificassemos o valor da váriavel acao, e alterassemos o valor para ../../../../../../etc/passwd, a váriavel receberia esse valor,  e seria incluido o arquivo password do linux.


Se alguém conseguir enviar algum arquivo, para o servidor, e consegui executar esse ataque, com certeza o programador terá problemas.

Como se proteger:

Existem várias formas de se proteger, uma telas é tirar os caracteres que podem representar perigo.

Exemplo:

str_replace(Array('.','/','\','%','0'),'',$acao);

Nenhum comentário:

Postar um comentário