O fragmento de código a seguir recebe o nome de um arquivo como
parâmetro da linha de comando e mostra o seu conteúdo ao usuário.
O script é configurado com setuid root, pois visa servir como uma
ferramenta educacional para permitir que administradores de
sistemas em treinamento examinem arquivos privilegiados do
sistema, sem conceder-lhes a capacidade de alterá-los ou causar
danos ao sistema.
Dado que o programa opera com privilégios de administrador, a
função
system() é igualmente executada com tais privilégios.
Quando um usuário fornece um nome de arquivo padrão, a chamada
funciona como esperado. Contudo, se um invasor inserir uma
string
como ";rm -rf /", a chamada
system() falhará ao tentar executar o
comando "cat" por falta de argumentos, resultando na tentativa
subsequente de