Я пытался получить доступ, redis-cli
но потому что я такой ленивый, я red
дважды набрал и нажал клавишу Tab, но я заметил, что на самом деле есть бинарный файл, red
который находится под /bin/
.
Когда я сделал
cat /bin/red
это показало
#! /bin/sh
bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
exec "${bindir}"ed --restricted "$@"
Есть идеи, что это?
Заметка. когда я выполняю red
, он просто ожидает ввода и что бы я ни набрал, он либо сохраняет его и ждет другого приглашения, либо возвращает ?
, заметьте, что только при нажатии q
он завершается. также при вводе цифр от 0 до 9 и продолжении ввода он показывает каждый введенный вами ввод, когда он сохранил то, что вы набрали ранее
пример:
a <<<-- input
bsa <<< input taken without ?
^C <<<--- hitting ctrl-c
? <<<--- output
example2:
v
?
b
?
a
qwrefdf <<-- saved because it didn't output ? after typing "a" up
^C
?
<<- waiting for input
поэтому «h» выводит в «неверный адрес» и только «a», «x», «c» и «i» принимают ввод. все остальное, кроме чисел, приводит к?
dpkg -S /bin/red
. Это скажет вам, что файл является частьюed
пакета, иapt-cache show ed
даст вам описание этого пакета.man red
.Ответы:
red
находитсяed
в ограниченном режиме.Кроме того, код показывает, что выполняется
ed --restricted
изbindir
всех аргументов ("$@"
).Для руководства по
ed
и его команд, запуститеinfo Ed
.В главе
Invoking ed
:источник
file /bin/red
иcat /bin/red
(посколькуfile
показывает, что это «сценарий оболочки POSIX, текстовый исполняемый файл ASCII).