
FUSEは、Unrestricted Executable File Upload(UEFU)脆弱性を特定するために設計されたペネトレーションテストシステムです。テスト戦略の詳細は、NDSS 2020に掲載された論文「FUSE: Finding File Upload Bugs via Penetration Testing」に記載されています。FUSEの設定と実行方法については、以下を参照してください。
FUSEは現在、Ubuntu 18.04およびPython 2.7.15で動作します。
# apt-get install rabbitmq-server
# apt-get install python-pip
# apt-get install git
$ git clone https://github.com/WSP-LAB/FUSE
$ cd FUSE && pip install -r requirements.txt
FUSEは、対象のPHPアプリケーションのパラメータを指定する設定ファイルをユーザーが提供します。スクリプトは、対象のWebアプリケーションをテストする前に記入する必要があります。READMEファイルと設定ファイルの例を確認できます。
ファイルモニターの設定(オプション)
$ vim filemonitor.py
...
10 MONITOR_PATH='/var/www/html/' <- 対象アプリケーションのWebルート
11 MONITOR_PORT=20174 <- ファイルモニターのデフォルトポート
12 EVENT_LIST_LIMITATION=8000 <- EVENT_LIST内の要素の最大数
...
$ python framework.py [設定ファイルのパス]
$ python filemonitor.py
FUSEを実行してUFUまたはUEFUのバグを発見し、CVEを取得した場合は、README.mdにPRを送ってください。
この研究プロジェクトは、KAISTのWSP Labによって実施されました。
論文を引用する場合:
@INPROCEEDINGS{lee:ndss:2020,
author = {Taekjin Lee and Seongil Wi and Suyoung Lee and Sooel Son},
title = {{FUSE}: Finding File Upload Bugs via Penetration Testing},
booktitle = {Proceedings of the Network and Distributed System Security Symposium},
year = 2020
}
| アプリケーション | CVE |
|---|
| Elgg | CVE-2018-19172 |
| ECCube3 | CVE-2018-18637 |
| CMSMadeSimple | CVE-2018-19419, CVE-2018-18574 |
| CMSimple | CVE-2018-19062 |
| Concrete5 | CVE-2018-19146 |
| GetSimpleCMS | CVE-2018-19420, CVE-2018-19421 |
| Subrion | CVE-2018-19422 |
| OsCommerce2 | CVE-2018-18572, CVE-2018-18964, CVE-2018-18965, CVE-2018-18966 |
| Monstra | CVE-2018-6383, CVE-2018-18694 |
| XE | XEVE-2019-001 |