コマンド注入について少し練習していますが、注入できるコマンドがあります。
grep -i $key dictionary.txt
$key
何かを注入できる部分はどこですか?ここで意図された解決策は、;
ドアを終了して新しいステートメントを構成することです。しかし、私ができることを見たい使用grep
私の試みで。
私がやりたいことは、特定のls
ディレクトリにあるファイルを表示できるようにすることです。私はこれら2つを次のように組み合わせたいです。
ls | grep -i "."
ところで注射を当てるので、grep -i
まず注射を受けなければなりません。それで、私ができることはありますか?たぶん「逆順」で動作するパイプ演算子でしょうか?
grep -i "." <| ls
編集する
私がここで何をしているのか、何を達成しようとしているのかについて少し混乱があるようです。
ペンテストについていくつかの入門練習をしています。
現在の練習では、次の文字列を含むウェブサイトに挿入しています。
grep -i $key dictionary.txt
その後、この文字列はコマンドの実行に使用されます。その文字列に何かを注入する必要がありますが、これはコマンド注入になります。文字列はすでにサーバーに書き込まれているため、制御できないため、左側に何も配置できませんgrep -i
。
以下を注入するソリューションがすでにあります。
; ls /etc/natas_webpass #
次に、(挿入時に)サーバー上で実行されるコマンドを作成します。
grep -i ; ls /etc/natas_webpass # dictionary.txt
私はセミコロンを使わずにこの練習問題を解決したいのですが、実際にはgrep
既にあるセミコロンを使うこともできます。
編集2
誰かが私が探していることに関するアドバイスがあります<(ls)
。私はこれを実行してこれをテストしようとしました。
$ grep -i <(ls)
しかし、これはうまくいきません。何も起こりません。
答え1
あなたはほとんどそれを理解しています。注入
. <(ls)
または
^ <(ls)
のための$key
。検索する必要があります何出力から ls
。指す(.
) はすべての文字と一致するため、空白ではなくすべての行に一致します。キャレット(^
)はすべての行の先頭に一致するので一致します。どの行、さらには空行。 (ドル記号を使用することもできます。)