Hacking usando “rename()” do PHP.

O “rename()” é um médoto do PHP usado para renomear arquivo ou diretório.

Você pode ver na documentação do PHP.

Esse método recebe duas strings como parâmetros, a primeira é o antigo nome e a segunda e o novo nome.

Mas como eu posso destruir um sistema explorando o método rename?

No entanto você precisa inserir parâmetros pelo através do $_POST, $_GET para o attack ter sucesso.

Exemplo de uso normal:

http://www.target.com/?oldImage=imageX.jpg

$_GET['oldImage'] = 'imageX.jpg';
<?php 
$newName = 'imageNewName.jpg';
rename( $_GET['oldImage'], $newName );
?>

O sistema vai renomear a imageX.jpg para imageNewRename.jpg e a imageX.jpg não vai existir mais.

Exemplo do ataque:

http://www.target.com/?oldImage=../../index.php

$_GET['oldImage'] = '../../index.php';

Se você usa $_GET[‘oldImage’] com ‘index.php’ ou usa o transversal directory usando ../ como ../../folderX/index.php você pode renomear um arquivo importante do sistema.

O resultado é que o index.php não exite mais no sistema.

E quando o sistema tenta encontrar o arquivo e não acha, o sistema está corrompido e não funciona mais. Pode ser pior se o sistema for um cms como WordPress ou Joomla ou Drupal, se você renomeia algum arquivo de configuração você vai poder reiniciar todo o sistema. Os frameworks você pode renomear os arquivos de configurações como o env do laravel e parar tudo.

Assista um vídeo com exemplo:

Estude e seja um desenvolvedor melhor.

Em breve vai ver como podemos nos proteger desse ataque. Vejo vocês em breve…

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *