Apache Struts2 Ô¶³Ì´úÂëÖ´ÐÐÎó²î£¨S2-048£© ÊÖÒÕÆÊÎöÓë·À»¤¼Æ»®
2017-07-09
×ÛÊö
2017Äê7ÔÂ7ÈÕ£¬Apache StrutsÐû²¼×îеÄÇ徲ͨ¸æ£¬Apache Struts 2.3.xµÄstrus1²å¼þ±£´æÔ¶³Ì´úÂëÖ´ÐеĸßΣÎó²î£¬Îó²î±àºÅΪCVE-2017-9791£¨S2-048£©¡£¹¥»÷Õß¿ÉÒԽṹ¶ñÒâµÄ×Ö¶Îֵͨ¹ýStruts2µÄStruts1µÄ²å¼þ£¬Ô¶³ÌÖ´ÐдúÂë¡£
Ïà¹ØÁ´½ÓÈçÏ£º
https://cwiki.apache.org/confluence/display/WW/S2-048
ÍþвӰÏì
È«ÇòÂþÑÜͼ

£¨Êý¾ÝÀ´×ÔAG¹«Ë¾¿Æ¼¼ÍþвÇ鱨ÖÐÐÄNTI£©
º£ÄÚÂþÑÜͼ

£¨Êý¾ÝÀ´×ÔAG¹«Ë¾¿Æ¼¼ÍþвÇ鱨ÖÐÐÄNTI£©
È«ÇòÅÅÐÐ

£¨Êý¾ÝÀ´×ÔAG¹«Ë¾¿Æ¼¼ÍþвÇ鱨ÖÐÐÄNTI£©
º£ÄÚÅÅÐÐ

£¨Êý¾ÝÀ´×ÔAG¹«Ë¾¿Æ¼¼ÍþвÇ鱨ÖÐÐÄNTI£©
·À»¤¼Æ»®
¹Ù·½½â¾ö¼Æ»®
¹Ù·½ÒѾÐû²¼Á˰汾¸üУ¬½¨ÒéÓû§Éý¼¶µ½Struts 2.5.10.1°æ±¾£¬ÏÂÔØÁ´½ÓÈçÏÂËùʾ£º
· https://github.com/apache/struts/releases/tag/STRUTS_2_5_10_1
· http://struts.apache.org/download.cgi
ÔÝʱÐÞ¸´¼Æ»®
· ¿ª·¢Õßͨ¹ýʹÓÃ×ÊԴŲÓ÷½·¨Ìæ»»Ôʼֵת´ï·½·¨¸øActionMessageµÄ·½·¨¡£ ÈçÏÂËùʾ£º

²»ÒªÊ¹ÓÃÈçÏµķ½·¨£º

· ÔÚ·ÇÐëÒªµÄÇéÐÎϽûÓÃstruts2-struts1-plugin²å¼þ¡£½«struts2-struts1-plugin-2.3.x.jarÎļþ´Ó “/WEB-INF/lib”Ŀ¼ÖÐÒÆ¶¯µ½ÆäËûÎļþ¼Ð»òÕßɾ³ý¡£
ÊÖÒÕ·À»¤¼Æ»®
AG¹«Ë¾¿Æ¼¼¼ì²â¼Æ»®
1) ÈôÊÇÄú²»ÇåÎúÊÇ·ñÊÜ´ËÎó²îÓ°Ï죬¹«Íø×ʲú¿ÉʹÓÃAG¹«Ë¾ÔƽôÆÈÎó²îÔÚÏß¼ì²â£¬¼ì²âµØµãÈçÏ£º
https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?page_id=12
2) ÄÚÍø×ʲú¿ÉÒÔʹÓÃAG¹«Ë¾¿Æ¼¼µÄÔ¶³ÌÇå¾²ÆÀ¹Àϵͳ(RSAS V6 )»òWebÓ¦ÓÃÎó²îɨÃèϵͳ£¨WVSS£© ¾ÙÐмì²â¡£
· Ô¶³ÌÇå¾²ÆÀ¹Àϵͳ£¨RSAS V6£©
http://update.nsfocus.com/update/listRsasDetail/v/vulweb
· WebÓ¦ÓÃÎó²îɨÃèϵͳ£¨WVSS£©
http://update.nsfocus.com/update/listWvssDetail/v/6/t/plg
ͨ¹ýÉÏÊöÁ´½Ó£¬Éý¼¶ÖÁ×îа汾¼´¿É¾ÙÐмì²â£¡
AG¹«Ë¾¿Æ¼¼·À»¤¼Æ»®
ʹÓÃAG¹«Ë¾¿Æ¼¼·À»¤Àà²úÆ·£¨IPS/IDS/NF/WAF£©¾ÙÐзÀ»¤
· ÈëÇÖ·À»¤ÏµÍ³£¨IPS£©
http://update.nsfocus.com/update/listIps
· ÈëÇÖ¼ì²âϵͳ£¨IDS£©
http://update.nsfocus.com/update/listIds
· ÏÂÒ»´ú·À»ðǽϵͳ£¨NF£©
http://update.nsfocus.com/update/listNf
· WebÓ¦Ó÷À»¤ÏµÍ³£¨WAF£©
http://update.nsfocus.com/update/wafIndex
ͨ¹ýÉÏÊöÁ´½Ó£¬Éý¼¶ÖÁ×îа汾¼´¿É¾ÙÐзÀ»¤£¡
AG¹«Ë¾¿Æ¼¼·þÎñ¼Æ»®
AG¹«Ë¾¿Æ¼¼ÌṩרҵµÄÇå¾²ÊÖÒÕ·þÎñ£¬È«·½Î»µÄ°ü¹Ü¿Í»§Ó¦ÓÃϵͳÇå¾²£¬×èÖ¹ÊÜ´ËÎó²îÓ°Ïì¡£
· ¶ÌÆÚ·þÎñ£ºÎÒÃÇ¿ÉÒÔÌṩӦ¼±·þÎñ£¬·þÎñÄÚÈݰüÀ¨¶Ô¿Í»§Ó¦ÓÃϵͳÓÐÕë¶ÔÐÔµÄÌṩÐÞ¸´½¨Ò飬°ü¹Ü¿Í»§ÏµÍ³µÄÇå¾²Éý¼¶¡£
· Öкã¾Ã·þÎñ£ºÍŽáAG¹«Ë¾¿Æ¼¼¼ì²âÓë·À»¤²úÆ·£¬Ìṩ7*24µÄÇå¾²ÔËÓª·þÎñ£¬ÔÚ¿Í»§Ó¦ÓÃϵͳÔâµ½Çå¾²ÍþвʱµÚһʱ¼ä֪ͨ¿Í»§£¬²¢°´ÆÚ¾ÙÐÐÇå¾²¼ì²â£¬Õë¶ÔÇ徲Σº¦ÌṩרҵµÄ½â¾ö¼Æ»®¡£
ÊÖÒÕÆÊÎö
Îó²î¼ò½é
Apache Struts2.3.xϵÁа汾ÖÐstruts2-struts1-plugin±£´æÔ¶³Ì´úÂëÖ´ÐÐÎó²î£¬½ø¶øµ¼ÖÂí§Òâ´úÂëÖ´ÐС£
Îó²îÆÊÎö
¹Ù·½µÄÎó²îÐÎòÈçÏ£º

´Ó¹Ù·½µÄÎó²îÐÎò¿ÉÒÔÖªµÀ£¬Õâ¸öÎó²îʵÖÊÉÏÊÇÔÚstruts2-struts1-pluginÕâ¸öjar°üÉÏ¡£Õâ¸ö¿âÊǽ«struts1µÄaction·â×°³Éstruts2µÄactionÒÔ±ãÔÚstrut2ÉÏʹÓᣱ¾ÚµÔðÌâ³öÔÚstruts2-struts1-plugin°üStruts1Action.javaÎļþÖУ¬Struts1ActionÀàÖеÄexecuteÒªÁìŲÓÃÁËgetTextº¯Êý£¬Õâ¸öº¯Êý»áÖ´ÐÐognl±í´ïʽ£¬¸üΪÑÏÖØµÄÊÇgetTextµÄÊäÈëÄÚÈÝÊǹ¥»÷Õ߿ɿصġ£ÒÔÏ»á»ùÓÚstruts2µÄ¹Ù·½Ê¾Àý¾ÙÐÐÆÊÎö¡£
Struts1ActionµÄexecuteÒªÁì´úÂëÈçÏ£¬´Óºì¿òÖÐÐÅÏ¢¿ÉÒÔ¿´³ö×ÅʵÖÊÊÇŲÓÃSaveGangsterAction.executeÒªÁ죬ȻºóÔÙŲÓÃgetText(msg.getKey()….)¡£

ÔÚstruts2-showcaseµÄintegrationÄ£¿éÏÂÓÐSaveGangsterActionÀàµÄexecuteÒªÁ죨λÓÚSaveGangsterAction.javaÎļþ£©ÓÃÓÚʵÏÖ¡£ÏêϸÈçÏ£º

ÔÚÕâ¸öÒªÁìÖоʹøÈëÓж¾²ÎÊýgforn.getName()·Åµ½ÁËmessages½á¹¹ÖУ¬gform.getName()µÄÖµÊÇ´Ó¿Í»§¶Ë»ñÈ¡µÄ¡£
Gangsterform.getName()µÄʵÏÖÈçÏ£º

ÕâÀï´«ÈëÁË${1+1}£¬Óж¾²ÎÊýÒѾ´øÈ룬¾Í²îognl±í´ïʽ£¬¼ÌÐø»Øµ½Struts1ActionÀàµÄexecuteÒªÁìϰ벿·Ö£¬ÓÐgetText()µÄÈë¿Ú£¬ÄÜÇåÎú¿´µ½²ÎÊýÒѾ±»ÎÛȾ£¬ÏêϸÈçÏÂͼ£º

ÏÂÃæ½øÈëgetTextµÄʵÏÖº¯Êý£¬Õâ¸öŲÓÃÕ»½ÏÁ¿ÉÊ×ÏÈÎÒÃǸø³öջͼ£º

´ÓStruts1action.executeº¯Êý×îÏÈ£¬µ½ActionSupportµÄgetText()ÒªÁ죬ҪÁìÈçÏ£º

½øÈëTextProviderSuppport.getText£¬Å²ÓÃÆäÁíÒ»¸öÖØÔØÀàÒªÁìgetText()ʾÀýÈçÏ£º

½øÈëLocalizeTextUtil.findText£¬¼ÌÐøÆÊÎö×ÅʵÏÖ£º´ÓÃû×ÖÉÏÒ²ÄÜ¿´³öÆäÊÇÆ¾Ö¤Óû§µÄÉèÖÃ×öһЩÍâµØ»¯µÄ²Ù×÷¡£´úÂëÈçÏ£º

µ½ÕâÀï¾ÍÄÜ·¢Ã÷Õâ¾ÍÊÇÒ»¸öºÜµä·¶µÄognl±í´ïʽÈë¿Ú£¬ÏÈÊÇ»ñµÃÒ»¸övalueStack£¬ÔÙ¼ÌÐøµÝ¹é»ñµÃognl±í´ïʽµÄÖµ¡£¹Ù·½²Î¿¼Á´½Ó£º
https://struts.apache.org/maven/struts2-core/apidocs/com/opensymphony/xwork2/util/LocalizedTextUtil.html
×îºó¸½ÉÏÒ»¸ö¼òÆÓµÄ²âÊÔÓÃÀýͼ£º



AG¹«Ë¾ÔÆ





