2017-02-05 8 views
0

DVWAの高レベルコマンドインジェクションを使って運動しています。私は|用の穴があるけど、私は次のような出力を取得する方法を探しています:<<< printfを使ってLinuxシェルで複数のコマンドを標準出力する方法

[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 &lt;&lt;&lt;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]fensive:~# ping -c 4 &lt;&lt;&lt;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 &lt;&lt;&lt;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(
     '&' => '', 
     ';' => '', 
     '| ' => '', 
     '-' => '', 
     '$' => '', 
     '(' => '', 
     ')' => '', 
     '`' => '', 
     '||' => '', 
    ); 
+1

あなたがしようとしていることは明らかではありません: 'ping -c 4 <<< printf「10.0.0.1」は' ping -c 4」と同じです10.0.0.1「<<< printf」通常の 'ping'コマンドは標準入力に' printf'が与えられ、無視されます。 – chepner

答えて

0

mycmd="ls -l" 

その後、あなたはあなたのコマンドと他のコマンドをラップすることができ禁じられ、空白で置換されて、チャーは以下のとおりであります

サブシェルの出力は、他のコマンドにリダイレクトできます。例えばなど、尾、grepを、> $ログ、あなたがpingを送信したい

IPアドレスはまた、変数名になります

myip=10.0.0.1 

(ping $myip ; $mycmd) > logfile.txt 

あなたがそれを送信したいと思う理由は明らかではありませんコマンドラインで直接ではなく< < <となります。 < < <を使用する必要がある場合は、()括弧内のコマンドをラップして、< < < 10.0.0 .. と "ls -l"の後に改行を入れてみてください。括弧は、閉じ括弧が見えるまでコマンドが完了していないことをbashに伝えます。キャリッジリターンは、< < <が次のコマンドを消費するのを停止します。

+0

'<<<'は、 '' pipe''を避けて変数を 'stdin'にリダイレクトすることができる* herestring *として知られている' bash'ismです。 (それがあなたの "*あなたが何を望んでいるのかが分かりません.... *")。 –

+0

ご協力いただきありがとうございます。私は本質的な問題に焦点を当てた文脈を明確にしたいと思います。 – Raffa

+0

1)フィールドはdvwaのコマンドインジェクションです(脆弱なWebアプリケーション)、バックエンドでコマンドが実行されます: – Raffa

関連する問題