Загрузите и запустите файлы sh .x и .run с помощью curl или wget - PullRequest
0 голосов
/ 28 марта 2020

Обычно я запускаю bash программы с терминала, с помощью этой команды:

curl https://example.com/assets/file/file.sh | bash

Но если я делаю то же самое с файлом .run или. sh .x, это не так Работа. Я пробовал двумя разными способами:

curl https://example.com/assets/file/file.sh.x | bash

или

wget -O - https://example.com/assets/file/file.run | bash

Я вижу серию синтаксических ошибок или кодов ascii в терминале, которые не позволяют запустить скрипт.

В Интернете я не нашел ничего, что могло бы помочь мне решить проблему.

Возможно ли это решить или расширение файла не позволяет?

wget вывод файла. sh .x файл:

HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: ‘STDOUT’

-                                 [ <=>                                              ]  11.94K  --.-KB/s    in 0s

2020-03-28 16:03:19 (43.6 MB/s) - written to stdout [12224]

bash: line 1: syntax error near unexpected token `)'
bash: line 1: `ELF>@)@8  @@@@888      '

выход curl файла. sh .x файл:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12224    0 12bash: line 1: syntax error near unexpected token `)':--     0
2bash: line 1: `ELF>@)@8 @@@@888      '
24    0     0  39432      0 --:--:-- --:--:-- --:--:-- 39432
(23) Failed writing body

файл. sh .x содержимое что-то вроде:

...
    7f45 4c46 0201 0100 0000 0000 0000 0000
    0300 3e00 0100 0000 d00b 0000 0000 0000
    4000 0000 0000 0000 0029 0000 0000 0000
    0000 0000 4000 3800 0900 4000 1b00 1a00
    0600 0000 0400 0000 4000 0000 0000 0000
    4000 0000 0000 0000 4000 0000 0000 0000
    f801 0000 0000 0000 f801 0000 0000 0000
    0800 0000 0000 0000 0300 0000 0400 0000
    3802 0000 0000 0000 3802 0000 0000 0000
    3802 0000 0000 0000 1c00 0000 0000 0000
    1c00 0000 0000 0000 0100 0000 0000 0000
...

wget-вывода file.run:

HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-makeself]
Saving to: ‘STDOUT’

-                                 [ <=>                                              ]  12.86K  --.-KB/s    in 0s

2020-03-28 16:08:50 (44.6 MB/s) - written to stdout [13173]

Verifying archive integrity...head: cannot open 'bash' for reading: No such file or directory
main: line 80: bash: No such file or directory
Error in MD5 checksums: d41d8cd98f00b204e9800998ecf8427e is different from 42a127ab90433f4d3fabc166a4e0ca24

curl-вывода file.run:

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13173    0 13173    0     0  32932      0 --:--:-- --:--:-- --:--:-- 32932
Verifying archive integrity...head: cannot open 'bash' for reading: No such file or directory
main: line 80: bash: No such file or directory
Error in MD5 checksums: d41d8cd98f00b204e9800998ecf8427e is different from 42a127ab90433f4d3fabc166a4e0ca24

содержимого файла. Файл запуска довольно длинный, есть вся инициализация файла .run и в конце длинный список кодов ascii.

Запуск непосредственно на сервере, все они работают.

Использование wget или команды curl не работают

Исходя из полученного ответа, нет ли способа автоматически запускать sh .x / run файлы, как в случае со скриптами bash добавив "| bash "до конца команды?

1 Ответ

0 голосов
/ 28 марта 2020

ПРИМЕЧАНИЕ : Вы действительно должны быть очень осторожны с передачей последовательности неизвестных команд с веб-сайта в свою оболочку !!!

Файл, который вы пытаетесь получить bash для run - это двоичный файл ELF , т.е. скомпилированная исполняемая программа, а не сценарий оболочки. Вы можете проверить это так:

curl https://example.com/assets/file/file.sh.x > /tmp/unknown
file /tmp/unknown
...