O que mostra o arquivo cat of a tar? [fechadas]

3

Eu estava fazendo um teste de penetração para capturar o exercício de treinamento de bandeira e encontrei um arquivo chamado "backup". Eu verifiquei o tipo de arquivo de "backup" e vi que ele era gzip compactado. Eu descomprimi-lo para um arquivo chamado "teste". Eu então fiz "cat test" e vi que estava vendo um arquivo .bashrc. Mas eu não vi nada de útil lá e fiquei preso.

Eventualmente eu achei assistindo um spoiler que o tipo de arquivo do arquivo test era um arquivo tar, e extraí-lo me deu o que eu precisava.

O que me deixa confuso é por que fazer cat em um arquivo tar mostrou-me um arquivo aleatório do arquivo (ou provavelmente não aleatório, mas talvez o primeiro arquivo), e realmente nada indicava que havia mais nesse arquivo do que Eu fui mostrado (muito mais). O que está acontecendo aqui? Como o gato sabia parar depois de um arquivo? Tem algo a ver com a forma como um tar é codificado?

Eu gostaria de entender o que está acontecendo.

    
por Dave 26.11.2018 / 22:44

1 resposta

1

Eu não responderei diretamente à sua resposta, mas lhe darei ferramentas para ajudá-lo a descobrir o que está acontecendo.

Antes de prosseguir, sugiro que você faça uma cópia de backup do seu arquivo .bashrc atual ou (de preferência) para executar o seguinte em outro diretório que não a sua localização $HOME .

Comparação e experimentação

Você pode criar um arquivo tar (sem compactação) de um arquivo de texto e executar um cat nele. Você verá algumas informações interessantes na primeira linha: compare com o arquivo backup .

Se você extrair um arquivo não-tar (por exemplo, .bashrc ), aqui está o que você terá:

$ tar xvf .bashrc
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Como você disse que extrair o backup funcionou, sem mensagem de aviso nem erro, parece que esse arquivo é um arquivo tar.

file será seu amigo

Antes de qualquer extração, você poderia usar o comando file. Isso indicará o tipo do arquivo:

$ file backup.tar
backup.tar: POSIX tar archive (GNU)
$ file .bashrc
.bashrc: ASCII text

TAR: arquivamento de fita

Isso parece óbvio, mas tar é um formato de arquivo que foi (e ainda é) usado para criar um único arquivo de vários outros diretórios completos. Isso permite usar fita magnética como meio de gravação para salvá-los.

Você fez RTFM?

Como sempre, ler as páginas de manual de tar e file ajudará.

O comando apropos também pode ajudar, pois é um mecanismo de pesquisa local . Como outro exemplo, aqui como você poderia usá-lo (observe o " aqui qual grupo as palavras-chave de busca como um único parâmetro):

apropos "file type"

A resposta

Finalmente (porque eu sou um cara legal), aqui está um exemplo do conteúdo de um arquivo tar contendo um arquivo .bashrc:

$ cat backup.tar | head
.bashrc0000644000175000017500000000711012770726533011656 0ustar  myusermyuser# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
    
por 26.11.2018 / 23:41

Tags