
phpunit-shell | CVE_2017-9841
CVE-2017-9841 を悪用するシンプルな python3 スクリプト。
PHPUnit 4.8.28 未満および 5.x 系 5.6.3 未満で見つかったリモートコード実行の脆弱性を悪用するシンプルなスクリプトです。ユーザーが入力したシステムコマンドを POST リクエストでターゲットに送信します。
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9841.
pip3 install requests bs4
phpunit を実行しているターゲットを特定した後:
chmod +x phpunit-shell
./phpunit-shell -h
または
python3 phpunit-shell -h
-h または --help オプションで、スクリプトの実行方法をいくつかの例とともに表示します。
2 つの位置引数といくつかのオプション引数があります。
usage: phpunit-shell.py [-h] [-a] [-n] address
phpunit-shell.py exploits an RCE vulnerability in
applications running PHPUnit before 4.8.28 and 5.x before 5.6.3.
positional arguments:
address ip/hostname, port, sub-directories to the vulnerable eval-stdin.php file.
optional arguments:
-h, --help show this help message and exit
-a, --accessible turns off features which may negatively affect screen readers
-n, --no-colour removes colour output
example:
phpunit-shell.py 10.10.10.10/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
phpunit-shell はデフォルトでは、ターミナル出力に色と追加の書式を付けて表示しますが、これはスクリーンリーダーを使用するユーザーにとって必ずしも役立つとは限りません。--accessible 引数を使用すると、凝った書式や色のターミナル出力が無効になります。
また、ASCII アートも無効になります。
このスクリプトは、対象となるシステムや、脆弱なアプリケーションを実行しているユーザー/サービスの制限について仮定することができません。つまり、完全なシェルではないため、ディレクトリの変更はできず、長いコマンドは実行できない可能性があります。
これは、さらなる悪用へのゲートウェイとして設計された、シンプルで迅速なハーフシェル 🐢 です。最終的にはフルシェル、権限昇格などへとつなげます 👍
スクリプトはリクエストに 30 秒のタイムアウトを使用します。これはスクリプトを編集することで変更または完全にオフにできます。
デフォルトでは PHP コードの 'shell_exec' が使用されますが、ユーザーが希望すれば変更可能です。例えば 'system' を使用することもできます。
このスクリプトは主に、CVE-2017-9841 を悪用し、その後の悪用を迅速化するためのシンプルな Python スクリプトを作成する練習でした。
https://skerritt.blog/a11y/ - アクセシビリティの実装。