成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【博文推薦】OA高危漏洞的修復(fù)過(guò)程

安全 漏洞
21日信息安全部副總監(jiān)轉(zhuǎn)來(lái)一封郵件,關(guān)于OA的重大安全隱患,一是越權(quán)訪(fǎng)問(wèn)的問(wèn)題;二是struts版本問(wèn)題,經(jīng)過(guò)一段時(shí)間的整改,現(xiàn)將問(wèn)題描述和解決方案及實(shí)施過(guò)程總結(jié)成文。

21日信息安全部副總監(jiān)轉(zhuǎn)來(lái)一封郵件,關(guān)于OA的重大安全隱患,一是越權(quán)訪(fǎng)問(wèn)的問(wèn)題;二是struts版本問(wèn)題,經(jīng)過(guò)一段時(shí)間的整改,現(xiàn)將問(wèn)題描述和解決方案及實(shí)施過(guò)程總結(jié)如下:

越權(quán)訪(fǎng)問(wèn)漏洞

風(fēng)險(xiǎn)等級(jí):高危

問(wèn)題類(lèi)型:程序漏洞

問(wèn)題描述:

由于OA系統(tǒng)檔案查詢(xún)模塊沒(méi)有對(duì)查詢(xún)者的權(quán)限進(jìn)行完整驗(yàn)證,導(dǎo)致攻擊者可以利用該漏洞在查詢(xún)模塊通過(guò)修改工號(hào)的方式遍歷公司所有員工的個(gè)人信息。(注:editStaffInfoByCode參數(shù)值即工號(hào))

漏洞地址:

curl 'https://oa.*******.com/dependence/queryStaffinfoByStaffId.action' -H 'Cookie: Hm_lvt_0f350e5390b92578122a09670da4e18a=1444457881;JSESSIONID=17F532AA5A02473F18BFC2251D9EB4CD.s39;Hm_lvt_f5127c6793d40d199f68042b8a63e725=1444382434,1444640491,1445232940;Hm_lpvt_f5127c6793d40d199f68042b8a63e725=1445234011' -H 'Origin: https://oa.*******.com' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: zh-CN,zh;q=0.8' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36' -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer:https://oa.*******.com/dependence/staffInfoAdd.action?editStaffInfoByCode=FX006635&command=detail&selfstaffinfo=showFiled' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --data-binary '{"staffinfoVo":{"staffinfoEntity":{"staffId":"FX006635"}}}' --compressed

【博文推薦】OA高危漏洞的修復(fù)過(guò)程

 

解決方案:

1.修改網(wǎng)站代碼,添加權(quán)限驗(yàn)證功能,可以劃分用戶(hù)組,根據(jù)用戶(hù)組進(jìn)行權(quán)限劃分并嚴(yán)格限制用戶(hù)的訪(fǎng)問(wèn);

2.復(fù)用管理范圍和數(shù)據(jù)權(quán)限功能(mybatis攔截器對(duì)查詢(xún)進(jìn)行攔截并處理),使數(shù)據(jù)查詢(xún)控制在管理范圍的范疇內(nèi);

3.前端不向后端傳遞參數(shù),用于查詢(xún)的工號(hào)在后端從redis服務(wù)器上直接拉取當(dāng)前用戶(hù)的工號(hào);

4.前端傳遞的參數(shù)不使用工號(hào),而使用檔案的uuid代理主鍵,防止攻擊者使用偽造數(shù)據(jù)遍歷;

Struts2命令執(zhí)行漏洞

風(fēng)險(xiǎn)等級(jí):高危

問(wèn)題類(lèi)型:程序漏洞

問(wèn)題描述:

OA系統(tǒng)使用的struts2框架版本較低,存在遠(yuǎn)程代碼執(zhí)行漏洞,攻擊者可利用該漏洞遠(yuǎn)程進(jìn)行執(zhí)行命令、上傳腳本后門(mén)文件等操作,進(jìn)而直接獲取服務(wù)器權(quán)限。

漏洞地址:

https://oa.*******.com/main/index.action?redirect:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{%27cat%27,%27/etc/passwd%27})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get(%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}

解決方案:

【博文推薦】OA高危漏洞的修復(fù)過(guò)程

1.升級(jí)struts2框架到最新版本,將struts2升級(jí)到2.3.15.1

2.在升級(jí)的過(guò)程中導(dǎo)致 StrutsModuleConfigProvider 類(lèi)在加載classpath 下的struts配置文件出錯(cuò);

3.通過(guò)以下方法解決該錯(cuò)誤

1.在pom.xml中更新版本號(hào)

  1. <struts-version>2.3.15.1</struts-version> 

2.將struts2的自動(dòng)裝載配置文件方法重寫(xiě)如下

  1. public class StrutsModuleConfigProvider  extends XmlConfigurationProvider {  
  2.         //需要解析加載的文件路徑  
  3.      private static final String FILE_PATTERN = "classpath*:com/fx/**/server/META-INF/struts.xml";  
  4.      public StrutsModuleConfigProvider() {  
  5.       Map<String, String> mappings = new HashMap<String, String>();  
  6.       mappings.put("-//OpenSymphony Group//XWork 2.1.3//EN",  
  7.         "xwork-2.1.3.dtd");  
  8.       mappings.put("-//OpenSymphony Group//XWork 2.1//EN", "xwork-2.1.dtd");  
  9.       mappings.put("-//OpenSymphony Group//XWork 2.0//EN", "xwork-2.0.dtd");  
  10.       mappings.put("-//OpenSymphony Group//XWork 1.1.1//EN",  
  11.         "xwork-1.1.1.dtd");  
  12.       mappings.put("-//OpenSymphony Group//XWork 1.1//EN", "xwork-1.1.dtd");  
  13.       mappings.put("-//OpenSymphony Group//XWork 1.0//EN", "xwork-1.0.dtd");  
  14.       mappings  
  15.         .put(  
  16.           "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN",  
  17.           "struts-2.0.dtd");  
  18.       mappings  
  19.         .put(  
  20.           "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN",  
  21.           "struts-2.1.dtd");  
  22.       mappings  
  23.         .put(  
  24.           "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN",  
  25.           "struts-2.1.7.dtd");  
  26.       setDtdMappings(mappings);  
  27.      }  
  28.      /**  
  29.       * (non-Javadoc)  
  30.       *   
  31.       * @see com.opensymphony.xwork2.config.ContainerProvider#needsReload()  
  32.       */  
  33.      @Override  
  34.      public boolean needsReload() {  
  35.       return true;  
  36.      }  
  37.      /*  
  38.       * (non-Javadoc)  
  39.       *   
  40.       * @see com.opensymphony.xwork2.config.ContainerProvider#register(com.opensymphony.xwork2.inject.ContainerBuilder,  
  41.       *      com.opensymphony.xwork2.util.location.LocatableProperties)  
  42.       */  
  43.      @Override  
  44.      public void register(ContainerBuilder containerBuilder,  
  45.        LocatableProperties props) throws ConfigurationException {  
  46.       super.register(containerBuilder, props);  
  47.      }  
  48.      /*  
  49.       * (non-Javadoc)  
  50.       *   
  51.       * @see com.opensymphony.xwork2.config.PackageProvider#loadPackages()  
  52.       */  
  53.      @Override  
  54.      public void loadPackages() throws ConfigurationException {  
  55.       super.loadPackages();  
  56.      }  
  57.      @Override  
  58.      protected Iterator<URL> getConfigurationUrls(String fileName)  
  59.        throws IOException {  
  60.       List<URL> urls = new ArrayList<URL>();  
  61.       Resource[] resources = getAllResourcesUrl();  
  62.       for (Resource resource : resources) {  
  63.        urls.add(resource.getURL());  
  64.       }  
  65.       return urls.iterator();  
  66.      }  
  67.      /**  
  68.       * 獲取系統(tǒng)中需要搜尋的struts的配置  
  69.       *   
  70.       * @return  
  71.       * @throws IOException  
  72.       */  
  73.      private Resource[] getAllResourcesUrl() {  
  74.       ResourcePatternResolver resoler = new PathMatchingResourcePatternResolver();  
  75.       try {  
  76.        return resoler.getResources(FILE_PATTERN);  
  77.       } catch (IOException e) {  
  78.        e.printStackTrace();  
  79.       }  
  80.       return new Resource[0];  
  81.      } 

在大的項(xiàng)目的開(kāi)發(fā)中,如果采用了struts2,就有可能有很多的struts2的配置文件,雖然struts2提供通配符和action的自動(dòng)加載,但我們一般還是很難將所有的配置文件采用一個(gè)單一的action配置文件來(lái)解決,因此就產(chǎn)生了很多的action配置文件。如果我們將所有的配置文件存放在一個(gè)配置文件中,這樣在項(xiàng)目間的協(xié)同開(kāi)發(fā)和測(cè)試就會(huì)出現(xiàn)混亂,而最好的開(kāi)發(fā)模式就是每個(gè)模塊都有自己的action配置文件,而系統(tǒng)會(huì)自動(dòng)搜索到所有的配置文件,采用自動(dòng)加載的方式來(lái)完成struts2的初始化。

雖然在struts2中提供在web.xml文件中配置config參數(shù),將說(shuō)有需要加載的配置文件的路徑寫(xiě)在其中,以逗號(hào)分隔,這樣對(duì)于大的項(xiàng)目來(lái)說(shuō)還是很難實(shí)施的,最好的辦法還是采用自動(dòng)掃描的方法,我們可以擴(kuò)展struts2的ConfigurationProvider接口,在web.xml中配置自定義的加載類(lèi)即可,這樣就解決了struts2配置文件自動(dòng)加載的問(wèn)題。

另外,struts2的漏洞時(shí)升級(jí)到2.3.15.1時(shí)報(bào)下面錯(cuò)誤

java.lang.NoSuchMethodError: ognl.SimpleNode.isEvalChain(Lognl/OgnlContext;)Z

原因是因?yàn)閛gnl的版本也需要跟著升級(jí)需要升級(jí)到3.0.6

原文地址http://jncumter.blog.51cto.com/812546/1720489

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 51CTO.com
相關(guān)推薦

2022-01-13 14:27:36

數(shù)字化

2022-04-26 16:52:59

漏洞網(wǎng)絡(luò)攻擊者谷歌

2009-08-27 09:25:33

GoogleChrome高危漏洞Mozilla

2023-09-02 21:39:47

2015-05-15 10:04:28

localhost

2015-04-08 14:44:40

2010-06-01 09:03:58

2015-06-15 13:06:23

項(xiàng)目項(xiàng)目經(jīng)驗(yàn)

2016-01-31 16:49:42

漏洞Galaxy

2022-02-12 16:30:02

WordPress安全漏洞插件

2022-06-29 08:13:36

漏洞網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2023-03-15 18:08:08

2012-03-12 17:23:45

2021-07-07 10:25:16

微軟漏洞補(bǔ)丁

2015-03-18 13:18:45

MySQLSQL優(yōu)化

2015-06-17 09:34:09

軟件定義存儲(chǔ) 云存儲(chǔ)

2015-07-01 10:25:07

Docker開(kāi)源項(xiàng)目容器

2025-03-31 07:10:00

2010-08-03 09:51:22

2023-06-05 11:56:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产欧美一区二区久久性色99 | 久草福利 | 一级黄色大片 | 91一区二区| 国产免费福利小视频 | 久久久久久久一级 | 精品国产91 | 日韩一区二区三区在线视频 | 日韩欧美手机在线 | 毛片一区二区三区 | www.97国产| 理论片免费在线观看 | 久久新视频 | 精品少妇一区二区三区在线播放 | 国产成人精品在线播放 | 国产玖玖| 精品久久久久久亚洲精品 | 亚洲协和影视 | 日本a在线 | 欧美在线一区二区视频 | 三级黄色片在线 | 国产精品久久久亚洲 | 夜久久 | 久久久久久亚洲精品 | 亚洲国产日本 | 无人区国产成人久久三区 | 亚洲午夜av | 亚洲精品一区二区三区四区高清 | 国产一区二区 | 精品一区二区三区在线观看国产 | 偷拍亚洲色图 | 亚洲欧美日韩在线 | 成人国产精品久久 | 国产国拍亚洲精品av | 国产日韩欧美一区二区在线播放 | 国产精品免费大片 | 91av视频在线播放 | 成人精品鲁一区一区二区 | 国产剧情一区 | 日韩在线观看一区二区三区 | 久久免费视频在线 |