Я тренируюсь с инъекцией команды высокого уровня DVWA. Я знаю, что есть отверстие для |
, но я ищу способ, чтобы получить выходной сигнал, как следующее:Как выдать несколько команд для stdin в оболочке linux с помощью <<< printf
[email protected]:~# ping -c 4 10.0.0.1 ; ls
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3066ms
a a_post Documenti Immagini Modelli Musica pocl rockyou.txt Scrivania WebScarab.properties
Add b hash JavaSnoop.properties mtu plain Pubblici Scaricati Video
[email protected]:~#
начиная с
<<<printf "[ping ip argument] \u003B the_command_I_choose"
Моя проблема заключается в том, что может сделать это:
[email protected]:~# ping -c 4 <<<printf "10.0.0.1"
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3055ms
[email protected]:~#
, но я не могу это сделать:
[email protected]:~# ping -c 4 <<<printf "10.0.0.1 \u003b ls"
PING 10.0.0.1 \u003b ls (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 \u003b ls ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3075ms
[email protected]:~#
и даже не в этом:
[email protected]:~# ping -c 4 <<<printf "10.0.0.1 ; ls"
PING 10.0.0.1 ; ls (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ; ls ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3075ms
[email protected]:~#
Я искал глубоко и наиболее близки, если можно сказать так, это первый ответ на этот вопрос: How to make a bash function which can read from standard input?
К сожалению, это не помогло мне полностью, поэтому я решил опубликовать здесь свой вопрос, потому что я уверен, что, по моему невежеству, я что-то упускаю.
Решение должно содержать символ ;
или любой другой необходимый специальный символ, закодированный в юникоде. Запрещено, замещенный пустой, голец является следующим:
$substitutions = array(
'&' => '',
';' => '',
'| ' => '',
'-' => '',
'$' => '',
'(' => '',
')' => '',
'`' => '',
'||' => '',
);
Непонятно, что вы пытаетесь сделать: 'ping -c 4 <<< printf" 10.0.0.1 "' эквивалентно 'ping -c 4" 10.0.0.1 "<<< printf', что является normal 'ping', которому присваивается' printf' на своем стандартном входе, который он игнорирует. – chepner