あなたはする必要があります絶対にWebから端末に貼り付けないでください。。代わりに、テキストエディタに貼り付けてコマンドを確認し、端末に貼り付ける必要があります。
大丈夫です。しかし、Vimが私のテキストエディタであればどうでしょうか? Vimをコマンドモードに切り替えて悪意のあるコマンドを実行することを偽にすることは可能ですか?
答え1
短い答え:Vimは多くの場合、このタイプの攻撃に対して脆弱です(挿入モードでテキストを貼り付けるとき)。
概念の証拠
リンクされた記事を開始点として使用して、次のコードを使用してWebページをすばやく作成できました。 HTMLスパン要素とCSSを使用して、ls -la
一般の視聴者にのみ表示されるようにテキストの中央部分を非表示にしました。ソース)。注:^[
エスケープ文字^M
およびキャリッジリターン文字です。 Stack Exchange はユーザー入力を削除し、CSS を使用して非表示のコンテンツを防ぐためにアップロードしました。概念の証拠。
ls ^[:echom "This could be a silent command."^Mi -la
挿入モードでこのテキストをターミナルVimに貼り付けると(一部の修飾子と一緒に、以下を参照)、これは表示されますが、コマンドをls -la
実行すると:messages
非表示のVimコマンドの結果が表示されます。
防衛
この攻撃を防御するには、通常モードを維持し"*p
ます"+p
。通常モードでは血レジスタからテキストを抽出し、テキスト全体(隠し部分を含む)を貼り付けます。挿入モードでは同じことは発生しません(:set paste
設定されていても)。
括弧貼り付けモード
最新バージョンの Vim サポート括弧貼り付けモードこの種のコピー - 貼り付け攻撃を軽減します。 Sato Katsuraは、「かっこ内の貼り付けのサポートがVim 8.0.210に登場し、最近のバージョン8.0.303(2017年2月2日リリース)で修正されました」と述べました。
注:私が知っている限り、ブラケット貼り付けモードをサポートするVimバージョンがあります。しなければならないCtrl- Shift(VほとんどのGNU / Linuxデスクトップ環境)、Ctrl- V(MS Windows)、Command- V(Mac OS X)、またはShift-Insertまたはマウスの中央ボタンをクリックして貼り付けたときにユーザーを保護します。
テスト
後でLubuntu 16.04デスクトップでいくつかのテストを実行しましたが、結果は混乱して結論が出ませんでした。後で私はこれが私がいつも使っていたからであることに気づきました。GNU画面しかし、それが明らかになった画面角かっこ貼り付けモードを有効/無効にするために使用されるエスケープシーケンスをフィルタリングします(修理するしかし、プロジェクトが積極的にメンテナンスされていないときにコミットされているようです.) 。
追加のテストは役に立つかもしれませんが、これまでGNU画面が関連するエスケープシーケンスをブロックしない限り、角括弧で囲まれた貼り付けモードのターミナルエミュレータのサポートが概念の証明をブロックすることがわかりました。しかし、ユーザーニーニョ レポート慎重に作成されたエスケープシーケンスを使用して、角かっこ貼り付けモードを終了できます。
最新バージョンのVimを使用しても、ユーザーが*
挿入モードで(Ctrl- )を入力してR*レジスタから貼り付けると、概念証明は常に機能します。これは、入力した入力と貼り付けた入力を区別できるGVimでも機能します。この場合、Vimはユーザーがレジスタの内容を信頼できるようにします。したがって、信頼できないソースから貼り付けるときは、この方法を使用しないでください。 (これは私がよくやっていることですが、今はこの方法を使わないように自分で訓練を始めました。)
関連リンク
- あなたが見るものはあなたがコピーしたものではありません。(2009年からこの脆弱性を初めて言及したときに発見しました。)
- クリップボードの乱用から自分をどのように保護できますか?
- vim_devメーリングリストの最新のディスカッション(2017年1月)
結論として
テキストを貼り付けるとき(from+
または登録)*
通常モードを使用します。
...またはEmacsを使用してください。良いオペレーティングシステムだと聞きました。 :)
答え2
X11クリップボード機能またはプラットフォーム固有の対応する機能を使用し、提供されたターミナルペーストコマンド(shift-中央ボタンまたはターミナルショートカット方式)の代わりにマウスサポートが有効になっている間、マウスの中央クリックペーストまたはvimペーストコマンドを使用する場合)あなたはおそらく安全になります。
それ以外の場合は、角かっこ貼り付けモードをサポートする端末エミュレータがあり、端末とvimの両方でそのモードを有効にしていて、その端末エミュレータが角かっこ貼り付けモードを終了するエスケープシーケンスの挿入に対する保護を実装している場合は、おそらく次のようになります. 。安全。
それ以外の場合は、説明されている攻撃に対して脆弱です。ここ。