XXE漏洞安全問題修復與XML外部實體注入預防

發布于: 2019-09-24    瀏覽: 1100    作者:系統管理員

    近期長沙網站設計公司簡界科技有客戶的微信商戶號接到微信團隊發來的消息通知:
     消息1:《異常商戶號通知》
     經我司查核,貴方(商戶號:1413538102)存在 XXE(XML External Entity Injection)漏洞 問題,為保障相關交易對象的合法權益,確保交易財產的安全,我司將按協議及監管要求對該商戶號執行關閉支付權限,如有疑問,貴司可向我司申請技術協助。聯系方式為:WePayTS@tencent.com。
     消息2:《XXE漏洞安全通知》
您公司系統的支付回調鏈接存在XXE漏洞,有被外界非法攻擊的風險,請盡快安排技術人員參考微信支付安全實踐指引https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_5進行更新。

如有疑問,您也可以撥打95017-2或者通過郵箱過郵箱過郵箱過郵箱WePayTS@tencent.com與我們聯與我們聯與我們聯與我們聯系,感謝你對微信支付的支持。

   

     根據微信支付開發文檔中介紹:XML外部實體注入漏洞(XML External Entity Injection,簡稱 XXE),該安全問題是由XML組件默認沒有禁用外部實體引用導致,非微信支付系統存在漏洞。

XXE漏洞可能帶來的危害:可讀取任意文件;執行系統命令;探測內網端口;攻擊內網網站

XXE的攻擊原理:外界攻擊者通過模擬回調通知,在回調通知中引入不安全的XML,商戶服務器上執行系統命令。

XXE漏洞_長沙網站設計公司_簡界科技

       長沙網站設計公司簡界科技提出修復方法:

        XXE漏洞需要您在回調處理代碼里面解析XML之前,加入禁用實體解析的代碼,不同語言設置的內容不同,下面提供了幾種主流開發語言的設置指引(您可以根據關鍵字找到xml解析組件采取對應方法升級):
【PHP】 解析XML代碼前加入:
libxml_disable_entity_loader(true); //關鍵代碼
$xml = simplexml_load_string($xmlContent);
......


【JAVA】
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; // catching unsupported features
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
String FEATURE = null;
try {
// This is the PRIMARY defense. If DTDs (doctypes) are disallowed, almost all XML entity attacks are prevented
// Xerces 2 only - http://xerces.apache.org/xerces2-j/features.html#disallow-doctype-decl
FEATURE = "http://apache.org/xml/features/disallow-doctype-decl";
dbf.setFeature(FEATURE, true);

// If you can't completely disable DTDs, then at least do the following:
// Xerces 1 - http://xerces.apache.org/xerces-j/features.html#external-general-entities
// Xerces 2 - http://xerces.apache.org/xerces2-j/features.html#external-general-entities
// JDK7+ - http://xml.org/sax/features/external-general-entities 
FEATURE = "http://xml.org/sax/features/external-general-entities";
dbf.setFeature(FEATURE, false);

// Xerces 1 - http://xerces.apache.org/xerces-j/features.html#external-parameter-entities
// Xerces 2 - http://xerces.apache.org/xerces2-j/features.html#external-parameter-entities
// JDK7+ - http://xml.org/sax/features/external-parameter-entities 
FEATURE = "http://xml.org/sax/features/external-parameter-entities";
dbf.setFeature(FEATURE, false);

// Disable external DTDs as well
FEATURE = "http://apache.org/xml/features/nonvalidating/load-external-dtd";
dbf.setFeature(FEATURE, false);

// and these as well, per Timothy Morgan's 2014 paper: "XML Schema, DTD, and Entity Attacks"
dbf.setXIncludeAware(false);
dbf.setExpandEntityReferences(false);

// And, per Timothy Morgan: "If for some reason support for inline DOCTYPEs are a requirement, then 
// ensure the entity settings are disabled (as shown above) and beware that SSRF attacks
// (http://cwe.mitre.org/data/definitions/918.html) and denial 
// of service attacks (such as billion laughs or decompression bombs via "jar:") are a risk."

// remaining parser logic
} catch (ParserConfigurationException e) {
// This should catch a failed setFeature feature
logger.info("ParserConfigurationException was thrown. The feature '" +
FEATURE + "' is probably not supported by your XML processor.");
}
catch (SAXException e) {
// On Apache, this should be thrown when disallowing DOCTYPE
logger.warning("A DOCTYPE was passed into the XML document");
}
catch (IOException e) {
// XXE that points to a file that doesn't exist
logger.error("IOException occurred, XXE may still possible: " + e.getMessage());
}
DocumentBuilder safebuilder = dbf.newDocumentBuilder();

【.Net】
XmlDocument doc= new XmlDocument();
doc.XmlResolver = null;//關鍵代碼
......

關于XXE漏洞的修復更多介紹請參考微信支付開發文檔https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_5

XXE漏洞_長沙網站設計公司_簡界科技

      接入來介紹下XML外部實體注入詳細的預防措施:

      XML外部實體注入(XXE)現在通過點A4成為OWASP Top 10的一部分,它是對解析XML輸入的應用程序的一種攻擊。
      XXE問題在“ 通用弱點枚舉”參考中的ID 611下引用。
當弱配置的XML解析器處理包含對外部實體的引用的不受信任的XML輸入時,就會發生此攻擊。
這種攻擊可能導致泄露機密數據,拒絕服務,服務器端請求偽造(SSRF),從解析器所在的計算機角度進行端口掃描以及其他系統影響。以下指南提供了簡要信息以防止此漏洞。
有關XXE的更多信息,請訪問XML外部實體(XXE)。


      一般指導
      防止XXE的最安全方法始終是完全禁用DTD(外部實體)。根據解析器,該方法應類似于以下內容:
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
禁用DTD還可以使解析器安全地抵御拒絕服務(DOS)攻擊,例如Billion Laughs。如果不可能完全禁用DTD,則必須以特定于每個解析器的方式禁用外部實體和外部文檔類型聲明。
    下面提供了針對多種語言的詳細XXE預防指南以及這些語言中常用的XML解析器。

C / C ++
libxml2的
枚舉xmlParserOption不應定義以下選項:

XML_PARSE_NOENT:擴展實體并用替換文本替換它們
XML_PARSE_DTDLOAD:加載外部DTD
注意:
Per:根據這篇文章,從libxml2版本2.9開始,默認情況下,XXE已禁用,如以下補丁所提交的那樣。
搜索以下API的用法,以確保沒有XML_PARSE_NOENT和XML_PARSE_DTDLOAD在參數中定義:
xmlCtxtReadDoc
xmlCtxtReadFd
xmlCtxtReadFile
xmlCtxtReadIO
xmlCtxtReadMemory
xmlCtxtUseOptions
xmlParseInNodeContext
xmlReadDoc
xmlReadFd
xmlReadFile
xmlReadIO
xmlReadMemory

libxerces-C
使用XercesDOMParser此操作可防止XXE:
XercesDOMParser *parser = new XercesDOMParser;
parser->setCreateEntityReferenceNodes(false);
使用SAXParser,請執行以下操作以防止XXE:

SAXParser* parser = new SAXParser;
parser->setDisableDefaultEntityResolution(true);
使用SAX2XMLReader,這樣做可以防止XXE:

SAX2XMLReader* reader = XMLReaderFactory::createXMLReader();
parser->setFeature(XMLUni::fgXercesDisableDefaultEntityResolution, true);

Java的
     使用XML庫的Java應用程序特別容易受到XXE的攻擊,因為大多數Java XML解析器的默認設置是啟用XXE。長沙網站設計公司建議為了安全地使用這些解析器,您必須在使用的解析器中顯式禁用XXE。下面介紹如何在最常用的Java XML解析器中禁用XXE。
JAXP DocumentBuilderFactory,SAXParserFactory和DOM4J
DocumentBuilderFactory, SAXParserFactory和DOM4J XML解析器可以使用相同的技術來保護他們免受XXE進行配置。
DocumentBuilderFactory這里僅提供示例。JAXP DocumentBuilderFactory setFeature)方法允許開發人員控制啟用或禁用哪些特定于實現的XML處理器功能。
可以在工廠或基礎XMLReader setFeature方法上設置功能。
每個XML處理器實現都有自己的功能,這些功能控制如何處理DTD和外部實體。
有關使用突出顯示語法的示例代碼片段的信息SAXParserFactory,請參見此處。
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; // catching unsupported features
...
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
String FEATURE = null;
try {
    // This is the PRIMARY defense. If DTDs (doctypes) are disallowed, almost all 
    // XML entity attacks are prevented
    // Xerces 2 only - http://xerces.apache.org/xerces2-j/features.html#disallow-doctype-decl
    FEATURE = "http://apache.org/xml/features/disallow-doctype-decl";
    dbf.setFeature(FEATURE, true);


    // If you can't completely disable DTDs, then at least do the following:
    // Xerces 1 - http://xerces.apache.org/xerces-j/features.html#external-general-entities
    // Xerces 2 - http://xerces.apache.org/xerces2-j/features.html#external-general-entities
    // JDK7+ - http://xml.org/sax/features/external-general-entities
    FEATURE = "http://xml.org/sax/features/external-general-entities";
    dbf.setFeature(FEATURE, false);


    // Xerces 1 - http://xerces.apache.org/xerces-j/features.html#external-parameter-entities
    // Xerces 2 - http://xerces.apache.org/xerces2-j/features.html#external-parameter-entities
    // JDK7+ - http://xml.org/sax/features/external-parameter-entities
    FEATURE = "http://xml.org/sax/features/external-parameter-entities";
    dbf.setFeature(FEATURE, false);

    // Disable external DTDs as well
    FEATURE = "http://apache.org/xml/features/nonvalidating/load-external-dtd";
    dbf.setFeature(FEATURE, false);

    // and these as well, per Timothy Morgan's 2014 paper: "XML Schema, DTD, and Entity Attacks"
    dbf.setXIncludeAware(false);
    dbf.setExpandEntityReferences(false);

    // And, per Timothy Morgan: "If for some reason support for inline DOCTYPEs are a requirement, then
    // ensure the entity settings are disabled (as shown above) and beware that SSRF attacks
    // (http://cwe.mitre.org/data/definitions/918.html) and denial
    // of service attacks (such as billion laughs or decompression bombs via "jar:") are a risk."
    // remaining parser logic
    ...
} catch (ParserConfigurationException e) {
    // This should catch a failed setFeature feature
    logger.info("ParserConfigurationException was thrown. The feature '" + FEATURE 
    + "' is probably not supported by your XML processor.");
    ...
} catch (SAXException e) {
    // On Apache, this should be thrown when disallowing DOCTYPE
    logger.warning("A DOCTYPE was passed into the XML document");
    ...
} catch (IOException e) {
    // XXE that points to a file that doesn't exist
    logger.error("IOException occurred, XXE may still possible: " + e.getMessage());
    ...
}

// Load XML file or stream using a XXE agnostic configured parser...
DocumentBuilder safebuilder = dbf.newDocumentBuilder();
Xerces 1 功能:
不要設置包括外部實體此功能來false。
不要設置包括參數實體此功能來false。
不要設置包括外部的DTD 此功能來false。
Xerces 2 功能:
通過設置禁止內聯DTD 此功能來true。
不要設置包括外部實體此功能來false。
不要設置包括參數實體此功能來false。
不要設置包括外部的DTD 此功能來false。
注意:上面的防御措施要求Java 7 update 67,Java 8 update 20或更高版本,因為上述對策DocumentBuilderFactory和SAXParserFactory在較早的Java版本中已被破壞,具體如下:CVE-2014-6517。

XMLInputFactory(StAX解析器)
StAX解析器(例如)XMLInputFactory允許設置各種屬性和功能。
要保護Java XMLInputFactory免于XXE,請執行以下操作:
// This disables DTDs entirely for that factory
xmlInputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, false); 
// disable external entities
xmlInputFactory.setProperty("javax.xml.stream.isSupportingExternalEntities", false);

TransformerFactory
要保護javax.xml.transform.TransformerFactoryXXE,請執行以下操作:
TransformerFactory tf = TransformerFactory.newInstance();
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");


Validator
要保護javax.xml.validation.ValidatorXXE,請執行以下操作:
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = factory.newSchema();
Validator validator = schema.newValidator();
validator.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
validator.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");

SchemaFactory
要保護javax.xml.validation.SchemaFactoryXXE,請執行以下操作:
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
Schema schema = factory.newSchema(Source);


SAXTransformerFactory
要保護javax.xml.transform.sax.SAXTransformerFactoryXXE,請執行以下操作:
SAXTransformerFactory sf = SAXTransformerFactory.newInstance();
sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
sf.newXMLFilter(Source);
注意:要使用以下內容,XMLConstants需要JAXP 1.5,該版本已在7u40和Java 8中添加到Java中:

javax.xml.XMLConstants.ACCESS_EXTERNAL_DTD
javax.xml.XMLConstants.ACCESS_EXTERNAL_SCHEMA
javax.xml.XMLConstants.ACCESS_EXTERNAL_STYLESHEET


XMLReader的
長沙網站設計公司提示要保護Java org.xml.sax.XMLReader免于XXE,請執行以下操作:
XMLReader reader = XMLReaderFactory.createXMLReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
// This may not be strictly required as DTDs shouldn't be allowed at all, per previous line.
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); 
reader.setFeature("http://xml.org/sax/features/external-general-entities", false);
reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);


XMLReader
要保護Java org.dom4j.io.SAXReader免于XXE,請執行以下操作:
saxReader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
saxReader.setFeature("http://xml.org/sax/features/external-general-entities", false);
saxReader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
根據測試,如果您缺少其中之一,則仍然容易受到XXE攻擊。

SAXBuilder的
要保護Java org.jdom2.input.SAXBuilder免于XXE,請執行以下操作:
SAXBuilder builder = new SAXBuilder();
builder.setFeature("http://apache.org/xml/features/disallow-doctype-decl",true);
builder.setFeature("http://xml.org/sax/features/external-general-entities", false);
builder.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
Document doc = builder.build(new File(fileName));


No-op EntityResolver
對于采用的API EntityResolver,您可以通過提供無操作實現來中和XML解析器解析實體的能力:
public final class NoOpEntityResolver implements EntityResolver {
    public InputSource resolveEntity(String publicId, String systemId) {
        return new InputSource(new StringReader(""));
    }
}
// ...
xmlReader.setEntityResolver(new NoOpEntityResolver());
documentBuilder.setEntityResolver(new NoOpEntityResolver());
或更簡單地說:
EntityResolver noop = (publicId, systemId) -> new InputSource(new StringReader(""));
xmlReader.setEntityResolver(noop);
documentBuilder.setEntityResolver(noop);


JAXB Unmarshaller
由于javax.xml.bind.Unmarshaller解析XML并不支持禁用XXE的任何標志,因此必須首先通過可配置的安全解析器解析不受信任的XML,然后生成一個源對象,并將該源對象傳遞給Unmarshaller。例如:
//Disable XXE
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

//Do unmarshall operation
Source xmlSource = new SAXSource(spf.newSAXParser().getXMLReader(), 
                                new InputSource(new StringReader(xml)));
JAXBContext jc = JAXBContext.newInstance(Object.class);
Unmarshaller um = jc.createUnmarshaller();
um.unmarshal(xmlSource);

Java 8及更高版本
長沙網站設計公司認為由于OpenJDK 8 beta 86中的JDK-8010393,javax.xml.bind.Unmarshaller默認情況下實例是安全的。默認情況下,此處提到的其他類在Java 8中仍然不安全。

XPathExpression
javax.xml.xpath.XPathExpression不能單獨安全地配置A ,因此必須首先通過另一個安全的XML解析器來解析不受信任的數據。
例如:
DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
df.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
df.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
DocumentBuilder builder = df.newDocumentBuilder();
String result = new XPathExpression().evaluate( builder.parse(
                            new ByteArrayInputStream(xml.getBytes())) );
java.beans.XMLDecoder中
此類中的readObject()方法從根本上講是不安全的。
它解析的XML不僅要服從XXE,而且該方法還可以用于構造任何Java對象,并執行此處所述的任意代碼。
除了信任或正確驗證傳遞給它的輸入之外,沒有其他方法可以安全地使用此類。
因此,我們強烈建議您完全避免使用此類,并使用本備忘單其他地方所述的安全或正確配置的XML解析器替換該類。

Other XML Parsers
    有許多第三方庫可以直接解析XML或通過使用其他庫來解析XML。默認情況下,請測試并驗證其XML解析器針對XXE是安全的。如果默認情況下解析器不安全,請查找解析器支持的標志以禁用所有可能的外部資源包含,如上面給出的示例。如果沒有外部控制,請確保不信任內容先通過安全解析器傳遞,然后再傳遞到不安全的第三方解析器,類似于安全解組器的方式。
Spring Framework MVC / OXM XXE漏洞
例如,在Spring OXM和Spring MVC中發現了一些XXE漏洞。Spring框架的以下版本容易受到XXE的攻擊:
3.0.0至3.2.3(Spring OXM和Spring MVC)
4.0.0.M1(Spring OXM)
4.0.0.M1-4.0.0.M2(Spring MVC)
還有其他一些問題已在以后修復,因此為了完全解決這些問題,Spring建議您升級到Spring Framework 3.2.8+或4.0.2+。

對于Spring OXM,這是指使用org.springframework.oxm.jaxb.Jaxb2Marshaller。請注意,Spring OXM的CVE特別指出了2種XML解析情況取決于開發人員是否正確,其中2種是Spring的職責,并且已解決此CVE問題。
他們說的是:
開發人員必須處理兩種情況:
對于DOMSource,XML已經由用戶代碼解析,并且該代碼負責防止XXE。
對于StAXSource,XMLStreamReader已由用戶代碼創建,并且該代碼負責防止XXE。
Spring修復的問題:
對于SAXSource和StreamSource實例,Spring默認情況下會處理外部實體,從而創建此漏洞。
如果使用的是Spring OXM或Spring MVC的固定版本,下面是使用易受攻擊但現在很安全的StreamSource的示例:
import org.springframework.oxm.Jaxb2Marshaller;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;

Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
// Must cast return Object to whatever type you are unmarshalling
marshaller.unmarshal(new StreamSource(new StringReader(some_string_containing_XML));
因此,根據Spring OXM CVE編寫,以上內容現在很安全。但是,如果要改用DOMSource或StAXSource,則由您決定將這些源配置為對XXE安全。

.NET

.NET中XXE注入的以下信息直接來自Dean Fleming的單元測試Web應用程序。
該Web應用程序涵蓋了當前所有受支持的.NET XML解析器,并且針對每個應用程序都有測試用例,以說明何時可以安全地進行XXE注入以及何時不安全。
以前,此信息基于James Jardine的出色的.NET XXE文章。
與如何防止.NET中的XXE和XML拒絕服務相比,它最初提供了比Microsoft較早的文章更新,更詳細的信息,但是,Web應用程序涵蓋了一些不準確之處。
下表列出了所有受支持的.NET XML解析器及其默認安全級別:

XML Parser Safe by default?
LINQ to XML Yes
XmlDictionaryReader Yes
XmlDocument
...prior to 4.5.2 No
...in versions 4.5.2+ Yes
XmlNodeReader Yes
XmlReader Yes
XmlTextReader
...prior to 4.5.2 No
...in versions 4.5.2+ Yes
XPathNavigator
...prior to 4.5.2 No
...in versions 4.5.2+ Yes
XslCompiledTransform

Ye

s


LINQ轉XML
默認情況下,庫中的XElement和XDocument對象System.Xml.Linq都不受XXE注入的影響。XElement僅解析XML文件中的元素,因此將完全忽略DTD。默認情況下禁用了XDocument DTD ,并且僅在使用其他不安全的XML解析器構造時才不安全。

XmlDictionaryReader
System.Xml.XmlDictionaryReader默認情況下是安全的,因為當它嘗試解析DTD時,編譯器會引發異常,指出“ CData元素在XML文檔的頂層無效”。如果使用其他不安全的XML解析器構造,它將變得不安全。


XmlDocument
在此之前的.NET Framework版本4.5.2,System.Xml.XmlDocument是不安全的默認。該XmlDocument對象中有一個XmlResolver對象,在4.5.2之前的版本中需要將其設置為null。在版本4.5.2及更高版本中XmlResolver,默認情況下將其設置為null。

以下示例顯示了如何使其安全:
 static void LoadXML()
 {
   string xxePayload = "<!DOCTYPE doc [<!ENTITY win SYSTEM 'file:///C:/Users/testdata2.txt'>]>" 
                     + "<doc>&win;</doc>";
   string xml = "<?xml version='1.0' ?>" + xxePayload;


   XmlDocument xmlDoc = new XmlDocument();
   // Setting this to NULL disables DTDs - Its NOT null by default.
   xmlDoc.XmlResolver = null;   
   xmlDoc.LoadXml(xml);
   Console.WriteLine(xmlDoc.InnerText);
   Console.ReadLine();
 }
XmlDocument如果XmlResolver使用默認或不安全設置創建自己的nonnull ,則可能會變得不安全。如果需要啟用DTD處理,請參閱MSDN文章中詳細說明如何安全地進行處理。

XmlNodeReader
System.Xml.XmlNodeReader 默認情況下,對象是安全的,即使使用不安全的解析器構造或包裝在另一個不安全的解析器中,它們也將忽略DTD。

XmlReader
System.Xml.XmlReader 默認情況下,對象是安全的。
默認情況下,將它們設置為在.NET Framework 4.0和更低版本中將其ProhibitDtd屬性設置為false,或者DtdProcessing在.NET 4.0和更高版本中將其屬性設置為Prohibit。

另外,長沙網站設計公司指出在.NET版本4.5.2后,XmlReaderSettings屬于XmlReader具有其XmlResolver默認設置為NULL,它提供了安全性的附加層。
因此,XmlReader只有將兩個DtdProcessing屬性都設置為Parse且將XmlReaderSetting的s XmlResolver設置為具有默認或不安全設置的nonnull XmlResolver時,對象才會在4.5.2及更高版本中變得不安全。如果需要啟用DTD處理,請參閱MSDN文章中詳細說明如何安全地進行處理。

在線客服

售前咨詢

售后服務

投訴/建議

服務熱線
0731-82880004
18874148081
乌克兰女人xxx动物视频-6a夜趣福利视-www伊人情人综合网com-久久蝌蚪视频在线播放视频下载