web-dev-qa-db-ja.com

Excel数式での外部コマンドの実行

外部参照のMS Excel機能により、適切なセキュリティ警告とユーザーからの確認が必要な数式から任意のコマンドを実行できることがわかっています。

例えば。 Excelシート(またはExcelで開いたcsvファイル)に数式=cmd|' /C calc'!A1を含むセルがあると、任意のコードを実行するように拡張できる方法でcalc.exeが実行されます。

ただし、これにより2つの質問が生じます。

  1. この機能の詳細はどこかに文書化されていますか? MS Office 外部参照のドキュメント はそうしません。

  2. Excel for Macに同等の構成はありますか?特定の例は機能しませんが、cmd(およびcalc)がウィンドウ固有のコマンド名であることが原因である可能性もあります。外部での実行が意図的なものである場合(古い脆弱性は削除されておらず、警告が追加されているだけなので)、Excel for Macにも実装する必要があります。

6
Peteris

任意のコードを実行する機能は、Microsoftが追加した意図的な機能でした。オフィスがリリースされた当時、形成された脅威全体が異なっていたため、今日のようにファイルを共有しませんでした。そしてマイクロソフトは機能を削除して後方互換性を壊すことを嫌うので、私たちはまだこれに対処する必要があります。

  1. この機能の詳細はどこかに文書化されていますか?外部参照のMS Officeのドキュメントはそうしません。

=cmd正しく文書化されていないようです。リストにはありません Excel関数(アルファベット順) ですが、VBの文書には、電卓 ここ

  1. Excel for Macに同等の構成はありますか?特定の例は機能しませんが、cmd(およびcalc)がウィンドウ固有のコマンド名であることが原因である可能性もあります。外部での実行が意図的なものである場合(古い脆弱性は削除されておらず、警告が追加されているだけです)、Excel for Macにも実装される可能性があります。

はい、Office 2011は任意のコードを実行できます [〜#〜] poc [〜#〜] 、Office 2016ではMicrosoftがサンドボックスを追加しましたが、問題がありました ref

1
KilledKenny