Извлечь gzip из файла данных

Este es el mismo proceso que en "ejecutar cualquier comando que pase datos no confiables a comandos que interpretan argumentos como comandos" .

Tu primer comando,

bash -c "ls \$1" bash '.; echo hello'

se procesa de la siguiente manera:

  • bashse ejecuta con los argumentos -c, ls $1, bash, .; echo hello. bash lee sus argumentos, anota la opción -ccon el comando ls $1y los argumentos adicionales bashy .; echo hello;

  • cuando bash se expande ls $1, se expande a lscon los argumentos .;, echo, helloy lo ejecuta.

El punto y coma -tendría que haber sido procesado antes de la expansión variable para hacer que bash ejecutara dos comandos diferentes.

Su segundo comando,

bash -c "eval ls \$1" bash '.; echo hello'

se procesa de la siguiente manera:

  • bashse ejecuta con los argumentos -c, eval ls $1, bash, .; echo hello. bash lee sus argumentos, anota la opción -ccon el comando eval ls $1etc.

  • después de la expansión se ejecuta evalcon los argumentos ls, .;, echo, hello;

  • evalluego hace que los argumentos se vuelvan a analizar -, lo que resulta en la ejecución de ls.seguida de echo hello.

1
03.07.2019, 16:11
2 ответа

Похоже, binwalk сообщает о наличии дополнительного байта перед сжатыми данными. Игнорируйте этот байт любым удобным для вас способом.

tail -c +1 cut6 | gzip -d
2
27.01.2020, 23:30

Попробуйте вручную проверить подпись формата файла, например :xxd -l 4 cut6для поиска/подтверждения формата файла. Затем перейдите с 4 (этот размер может отличаться от )байт доhttps://en.wikipedia.org/wiki/List_of_file_signatures. Вы должны получить 1F 8B, но если нет, то ищите правильный метод сжатия и используйте соответствующий инструмент для распаковки/обработки.

0
27.01.2020, 23:30

Теги

Похожие вопросы