simples exploração binária setuid

0

Eu tenho um programa setuid que lista um arquivo desta forma:

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
        system("ls /challenge/binary/binary1/.passwd");
        return 0;
}

O que eu preciso é fazer com que o programa divulgue o conteúdo do arquivo em vez de simplesmente listar seu nome. Então, tentei criar um alias para alterar o comportamento de ls dessa maneira:

alias ls='cat'

mas ainda assim, não está funcionando. Você poderia por favor me apontar na direção certa!

    
por MedAli 27.02.2014 / 19:58

2 respostas

3

Aliases vivem apenas no shell que os definiu, e system inicia um novo shell. Esse shell não lerá ~/.bashrc ou outros arquivos nos quais os aliases são normalmente definidos: somente shells interativos. Alguns shells, mas não todos, lêem outro arquivo, mas existe uma maneira independente de utilizar esse shell.

A pesquisa de comando do shell tenta os seguintes elementos nesta ordem:

  • Aliases - não.
  • Funções - não, pelo mesmo motivo.
  • Builtins - não.
  • Comandos no PATH - tem que ser isso por padrão.

Portanto, trabalhe para garantir que a pesquisa de ls em $PATH ative o programa cat .

    
por 27.02.2014 / 21:32
0

Altere ls para cat .

ls lista diretórios, ele não exibe arquivos. cat faz isso.

    
por 27.02.2014 / 21:28

Tags