javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第1頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第2頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第3頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第4頁
javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收

漏洞修復(fù)總結(jié)2011年5月目錄TOC\o"1-5"\h\zWEB安全介紹 1SQL注入、盲注 .1SQL注入、盲注概述 1\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因 2\o"CurrentDocument"AppScan掃描建議 2\o"CurrentDocument"應(yīng)用程序解決方案 4會(huì)話標(biāo)識(shí)未更新 .7會(huì)話標(biāo)識(shí)未更新概述 7\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 8\o"CurrentDocument"AppScan掃描建議 8\o"CurrentDocument"應(yīng)用程序解決方案 8已解密登錄請(qǐng)求 9已解密登錄請(qǐng)求概述 9\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 9\o"CurrentDocument"AppScan掃描建議 9\o"CurrentDocument"應(yīng)用程序解決方案 9跨站點(diǎn)請(qǐng)求偽造 11跨站點(diǎn)請(qǐng)求偽造概述 11\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 12\o"CurrentDocument"AppScan掃描建議 13\o"CurrentDocument"應(yīng)用程序解決方案 13不充分賬戶封鎖 13不充分賬戶封鎖概述 13\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 13\o"CurrentDocument"AppScan掃描建議 14\o"CurrentDocument"應(yīng)用程序解決方案 14啟用不安全HTTP方法 14啟用不安全HTTP方法概述 14\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 15\o"CurrentDocument"AppScan掃描建議 15\o"CurrentDocument"應(yīng)用程序解決方案 15HTTP注釋敏感信息 16HTTP注釋敏感信息概述 16\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 16\o"CurrentDocument"AppScan掃描建議 16\o"CurrentDocument"應(yīng)用程序解決方案 17\o"CurrentDocument"發(fā)現(xiàn)電子郵件地址模式 17\o"CurrentDocument"發(fā)現(xiàn)電子郵件地址模式概述 17\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 17\o"CurrentDocument"AppScan掃描建議 17\o"CurrentDocument"應(yīng)用程序解決方案 17通過框架釣魚 20通過框架釣魚概述 20\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 20\o"CurrentDocument"AppScan掃描建議 21\o"CurrentDocument"應(yīng)用程序解決方案 23檢查到文件替代版本 25檢查到文件替代版本概述 25\o"CurrentDocument"安全風(fēng)險(xiǎn)及原因分析 26\o"CurrentDocument"AppScan掃描建議 26\o"CurrentDocument"應(yīng)用程序解決方案 26Web安全介紹目前很多業(yè)務(wù)都依賴于互聯(lián)網(wǎng),例如說網(wǎng)上銀行、網(wǎng)絡(luò)購物、網(wǎng)游等,很多惡意攻擊者出于不良的目的對(duì)Web服務(wù)器進(jìn)行攻擊,想方設(shè)法通過各種手段獲取他人的個(gè)人賬戶信息謀取利益。正是因?yàn)檫@樣, Web業(yè)務(wù)平臺(tái)最容易遭受攻擊。同時(shí),對(duì)Web服務(wù)器的攻擊也可以說是形形色色、種類繁多,常見的有掛馬、SQL注入、緩沖區(qū)溢出、嗅探、利用IIS等針對(duì)Webserver漏洞進(jìn)行攻擊。一方面,由于TCP/IP的設(shè)計(jì)是沒有考慮安全問題的,這使得在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是沒有任何安全防護(hù)的。攻擊者可以利用系統(tǒng)漏洞造成系統(tǒng)進(jìn)程緩沖區(qū)溢出,攻擊者可能獲得或者提升自己在有漏洞的系統(tǒng)上的用戶權(quán)限來運(yùn)行任意程序,甚至安裝和運(yùn)行惡意代碼,竊取機(jī)密數(shù)據(jù)。而應(yīng)用層面的軟件在開發(fā)過程中也沒有過多考慮到安全的問題,這使得程序本身存在很多漏洞,諸如緩沖區(qū)溢出、SQL注入等等流行的應(yīng)用層攻擊,這些均屬于在軟件研發(fā)過程中疏忽了對(duì)安全的考慮所致。另一方面,用戶對(duì)某些隱秘的東西帶有強(qiáng)烈的好奇心,一些利用木馬或病毒程序進(jìn)行攻擊的攻擊者,往往就利用了用戶的這種好奇心理,將木馬或病毒程序捆綁在一些艷麗的圖片、音視頻及免費(fèi)軟件等文件中,然后把這些文件置于某些網(wǎng)站當(dāng)中,再引誘用戶去單擊或下載運(yùn)行。或者通過電子郵件附件和QQ、MSN等即時(shí)聊天軟件,將這些捆綁了木馬或病毒的文件發(fā)送給用戶,利用用戶的好奇心理引誘用戶打開或運(yùn)行這些文件、SQL注入、盲注2.1SQL注入、盲注概述Web應(yīng)用程序通常在后端使用數(shù)據(jù)庫,以與企業(yè)數(shù)據(jù)倉庫交互。查詢數(shù)據(jù)庫事實(shí)上的標(biāo)準(zhǔn)語言是SQL(各大數(shù)據(jù)庫供應(yīng)商都有自己的不同版本)°Web應(yīng)用程序通常會(huì)獲取用戶輸入(取自HTTP請(qǐng)求),將它并入SQL查詢中,然后發(fā)送到后端數(shù)據(jù)庫。接著應(yīng)用程序便處理查詢結(jié)果,有時(shí)會(huì)向用戶顯示結(jié)果。如果應(yīng)用程序?qū)τ脩簦ü粽撸┑妮斎胩幚聿粔蛐⌒模粽弑憧梢岳眠@種操作方式。在此情況下,攻擊者可以注入惡意的數(shù)據(jù),當(dāng)該數(shù)據(jù)并入SQL查詢中時(shí),就將查詢的原始語法更改得面目全非。例如,如果應(yīng)用程序使用用戶的輸入(如用戶名和密碼)來查詢用戶帳戶的數(shù)據(jù)庫表,以認(rèn)證用戶,而攻擊者能夠?qū)阂鈹?shù)據(jù)注入查詢的用戶名部分(和/或密碼部分),查詢便可能更改成完全不同的數(shù)據(jù)復(fù)制查詢,可能是修改數(shù)據(jù)庫的查詢,或在數(shù)據(jù)庫服務(wù)器上運(yùn)行Shell命令的查詢。2.2安全風(fēng)險(xiǎn)及原因高風(fēng)險(xiǎn)漏洞,攻擊者可能會(huì)查看、修改或刪除數(shù)據(jù)庫條目和表原因:未對(duì)用戶輸入正確執(zhí)行危險(xiǎn)字符清理AppScan掃描建議若干問題的補(bǔ)救方法在于對(duì)用戶輸入進(jìn)行清理。通過驗(yàn)證用戶輸入未包含危險(xiǎn)字符,便可能防止惡意的用戶導(dǎo)致應(yīng)用程序執(zhí)行計(jì)劃外的任務(wù),例如:啟動(dòng)任意SQL查詢、嵌入將在客戶端執(zhí)行的Javascript代碼、運(yùn)行各種操作系統(tǒng)命令,等等。建議過濾出所有以下字符:|(豎線符號(hào))&(&符號(hào));(分號(hào))$(美元符號(hào))%(百分比符號(hào))@(at符號(hào))'(單引號(hào))〃(引號(hào))\'(反斜杠轉(zhuǎn)義單引號(hào))\"(反斜杠轉(zhuǎn)義引號(hào))<>(尖括號(hào))()(括號(hào))+(加號(hào))CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a),(逗號(hào))\(反斜杠)以下部分描述各種問題、問題的修訂建議以及可能觸發(fā)這些問題的危險(xiǎn)字符:SQL注入和SQL盲注:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用存儲(chǔ)過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖。當(dāng)使用存儲(chǔ)過程時(shí),請(qǐng)利用ADO命令對(duì)象來實(shí)施它們,以強(qiáng)化變量類型。清理輸入以排除上下文更改符號(hào),例如:,(單引號(hào))-(引號(hào))\'(反斜線轉(zhuǎn)義單引號(hào))\"(反斜杠轉(zhuǎn)義引號(hào)))(結(jié)束括號(hào));(分號(hào))跨站點(diǎn)腳本編制:清理用戶輸入,并過濾出JavaScript代碼。我們建議您過濾下列字符:<>(尖括號(hào))〃(引號(hào))'(單引號(hào))%(百分比符號(hào));(分號(hào))()(括號(hào))&(&符號(hào))+(加號(hào))如果要修訂<%00script>變體,請(qǐng)參閱MS文章821349對(duì)于UTF-7攻擊:[-]可能的話,建議您施行特定字符集編碼(使用'Content-Type'頭或<meta>標(biāo)記)。HTTP響應(yīng)分割:清理用戶輸入(至少是稍后嵌入在HTTP響應(yīng)中的輸入)。請(qǐng)確保輸入未包含惡意的字符,例如:CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a)遠(yuǎn)程命令執(zhí)行:清理輸入以排除對(duì)執(zhí)行操作系統(tǒng)命令有意義的符號(hào),例如:|(豎線符號(hào))&(&符號(hào));(分號(hào))執(zhí)行shell命令:絕不將未檢查的用戶輸入傳遞給eval()、open()、sysopen()、system()之類的Perl命令。確保輸入未包含惡意的字符,例如:$(美元符號(hào))%(百分比符號(hào))@(at符號(hào))XPath注入:清理輸入以排除上下文更改符號(hào),例如:'(單引號(hào))-(引號(hào))等LDAP注入:使用正面驗(yàn)證。字母數(shù)字過濾(A..Z,a..z,0..9)適合大部分LDAP查詢。應(yīng)該過濾出或進(jìn)行轉(zhuǎn)義的特殊LDAP字符:在字符串開頭的空格或“#”字符在字符串結(jié)尾的空格字符,(逗號(hào))+(加號(hào))〃(引號(hào))\(反斜杠)<>(尖括號(hào));(分號(hào))()(括號(hào))MX注入:應(yīng)該過濾出特殊MX字符:CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a)記錄偽造:應(yīng)該過濾出特殊記錄字符:CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a)BS(退格,ASCII0x08)ORM注入:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用存儲(chǔ)過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖。使用參數(shù)化查詢API清理輸入以排除上下文更改符號(hào),例如:(*):'(單引號(hào))〃(引號(hào))\'(反斜線轉(zhuǎn)義單引號(hào))\"(反斜杠轉(zhuǎn)義引號(hào)))(結(jié)束括號(hào));(分號(hào))2.4應(yīng)用程序解決方案1、 我們?yōu)榱苏{(diào)試方便,在頁面上會(huì)拋出數(shù)據(jù)庫異常信息,如果入侵工具獲取了這些信息,就可以獲取系統(tǒng)的一些配置信息,如web系統(tǒng)框架、采用的數(shù)據(jù)庫等,從而找出系統(tǒng)漏洞。所以不要在頁面上拋出異常的詳細(xì)信息,這些信息對(duì)客戶并沒有用,只是方便技術(shù)人員調(diào)試罷了,處理方法是在異常處理頁面把打印異常代碼刪除即可;2、 新建一個(gè)過濾器,通過過濾器過濾SQL注入特殊字符,配置成功后,重啟服務(wù),用Appsan工具掃描,漏洞得到解決,通過過濾器可以解決SQL注入、跨站點(diǎn)腳本編制及通過框架釣魚等問題,具體實(shí)現(xiàn)方式如下:1、在web.xml文件中配置過濾器<filter-mapping><filter-name>requestEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>InjectFilter</filter-name><filter-class>com.sitech.ismp.util.context.InjectFilter</filter-class></filter>2、過濾器過濾代碼publicclassInjectFilterextendsIsmpServletFilter(privateStringfailPage="/loginout.jsp";//發(fā)生注入時(shí),跳轉(zhuǎn)頁面publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainfilterchain)throwsIOException,ServletException(//判斷是否有注入攻擊字符HttpServletRequestreq=(HttpServletRequest)request;Stringinj=injectInput(req);if(!inj.equals(""))(request.getRequestDispatcher(failPage).forward(request,response);return;}else(//傳遞控制到下一個(gè)過濾器filterchain.doFilter(request,response);}}/***判斷request中是否含有注入攻擊字符*@paramrequest*@return*/publicStringinjectInput(ServletRequestrequest)(Enumeratione=request.getParameterNames();StringattributeName;StringattributeValues[];Stringinj="";while(e.hasMoreElements())(attributeName=(String)e.nextElement();//不對(duì)密碼信息進(jìn)行過濾,一般密碼中可以包含特殊字符if(attributeName.equals("userPassword")||attributeName.equals("confirmPassword")||attributeName.equals("PASSWORD")||attributeName.equals("password")||attributeName.equals("PASSWORD2")||attributeName.equals("valiPassword")){continue;}attributevalues=request.getParameterValues(attributeName);for(inti=0;i<attributeValues.length;i++)(if(attributeValues[i]==null||attributeValues[i].equals(""))continue;inj=injectChar(attributeValues[i]);if(!inj.equals(""))(returninj;}}}returninj;}/***判斷字符串中是否含有注入攻擊字符*@paramstr*@return*/publicStringinjectChar(Stringstr)(Stringinj_str="\")\'*%";Stringinj_stra[]=inj_str.split("");for(inti=0;i<inj__stra.length;i++)(if(str.indexOf(inj_stra[i])>=0)(returninj_stra[i];}}return"";}}3會(huì)話標(biāo)識(shí)未更新3.1會(huì)話標(biāo)識(shí)未更新概述“會(huì)話固定”是一種攻擊技術(shù),會(huì)強(qiáng)制用戶的會(huì)話標(biāo)識(shí)變成顯式值。固定會(huì)話標(biāo)識(shí)值的技術(shù)有許多種,會(huì)隨著目標(biāo)Web站點(diǎn)的功能而不同。從利用“跨站點(diǎn)腳本編制”到向Web站點(diǎn)密集發(fā)出先前生成的HTTP請(qǐng)求,都在這些技術(shù)范圍內(nèi)。用戶的會(huì)話標(biāo)識(shí)固定之后,攻擊者會(huì)等待用戶登錄,然后利用預(yù)定義的會(huì)話標(biāo)識(shí)值來假定用戶的聯(lián)機(jī)身份。一般而言,對(duì)于標(biāo)識(shí)值的會(huì)話管理系統(tǒng)有兩種類型。第一種類型是“寬容”系統(tǒng),可讓W(xué)eb瀏覽器指定任何標(biāo)識(shí)。第二種類型是“嚴(yán)格”系統(tǒng),只接受服務(wù)器端生成的值。當(dāng)使用寬容系統(tǒng)時(shí),不需要聯(lián)系Web站點(diǎn),便可以維護(hù)任何會(huì)話標(biāo)識(shí)。在嚴(yán)格系統(tǒng)中,攻擊者需要維護(hù)“陷阱會(huì)話”并且必須定期聯(lián)系Web站點(diǎn),才能防止閑置超時(shí)。對(duì)于會(huì)話固定,倘若沒有活動(dòng)保護(hù),使用會(huì)話來識(shí)別已認(rèn)證的用戶的任何Web站點(diǎn)都可能受到攻擊。使用會(huì)話標(biāo)識(shí)的Web站點(diǎn)通常都是基于cookie的站點(diǎn),但也會(huì)使用URL和隱藏的表單字段。不幸的是,基于cookie的會(huì)話最容易受到攻擊。 目前已識(shí)別的大多數(shù)攻擊方法都是針對(duì)cookie的固定。相對(duì)于在用戶登錄Web站點(diǎn)之后,再竊取用戶的會(huì)話標(biāo)識(shí),會(huì)話固定提供的機(jī)會(huì)多得多。在用戶登錄之前,攻擊的活動(dòng)部分便已啟動(dòng)。會(huì)話固定攻擊過程通常由三個(gè)步驟組成:1) 安裝會(huì)話攻擊者針對(duì)目標(biāo)Web站點(diǎn)設(shè)下“陷阱會(huì)話”,并獲取這個(gè)會(huì)話的標(biāo)識(shí),攻擊者也可以選擇攻擊中所用的任意會(huì)話標(biāo)識(shí)。在某些情況下,必須反復(fù)聯(lián)系Web站點(diǎn),才能維護(hù)確定好的陷阱會(huì)話值。2) 固定會(huì)話攻擊者將陷阱會(huì)話值引進(jìn)用戶的瀏覽器中,固定用戶的會(huì)話標(biāo)識(shí)。3) 進(jìn)入會(huì)話用戶登錄目標(biāo)Web站點(diǎn)之后,當(dāng)使用固定會(huì)話標(biāo)識(shí)值時(shí),攻擊者便可加以接管。”修改對(duì)于這類問題解決方案為在用戶進(jìn)入登錄頁面時(shí)清空session讓cookie過期request.getSession(true).invalidate();//清空sessionCookiecookie=request.getCookies()[0];//獲取cookiecookie.setMaxAge(0);//讓cookie過期另外一種方式利用JSP的一些特性,不讓登錄頁面產(chǎn)生Session<%pagesession="false”%>3.2安全風(fēng)險(xiǎn)及原因分析高風(fēng)險(xiǎn)漏洞,可能會(huì)竊取或操縱客戶會(huì)話和cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù)原因:Web應(yīng)用程序編程或配置不安全AppScan掃描建議始終生成新的會(huì)話,供用戶成功認(rèn)證時(shí)登錄。防止用戶操縱會(huì)話標(biāo)識(shí)。請(qǐng)勿接受用戶瀏覽器登錄時(shí)所提供的會(huì)話標(biāo)識(shí)3.4應(yīng)用程序解決方案會(huì)話標(biāo)識(shí)未更新,Appscan給出的描述是建議用戶每次登錄時(shí)需使用新的會(huì)話標(biāo)識(shí)。應(yīng)用程序?qū)崿F(xiàn)上就是在登錄模塊,添加以下代碼,即用戶登錄后,重新生成會(huì)話。HttpSessionsession=request.getSession(false);if(session!=null)(〃讓cooki°過期session.invalidate();Cookiecookie=request.getCookies()[0];//獲取cookiecookie.setMaxAge(0);//讓cooki°過期}request.getSession(true);//生成新會(huì)話經(jīng)過測試,這段代碼只在weblogic和tomcat下才有效,在公司中間件webspeed及jboss6.0下問題都依然存在,但從掃描的結(jié)果信息分析看,漏洞已經(jīng)解決,分析判斷應(yīng)該只是session處理機(jī)制不同,AppScan工具仍認(rèn)為存在漏洞風(fēng)險(xiǎn)。在與電信溝通中我們存在一個(gè)經(jīng)驗(yàn)教訓(xùn)大家一定要吸取,不能過渡迷信流行的自動(dòng)化測試工具,尤其是對(duì)于Appscan這種判斷防御行為的復(fù)雜軟件,僅靠有限的規(guī)則設(shè)置就當(dāng)做是web安全的唯一標(biāo)準(zhǔn)這顯然不太合理,這種情況一定要與測試方溝通解釋。另一方面,對(duì)于公司的產(chǎn)品webspeed,也想提點(diǎn)建議,商務(wù)項(xiàng)目采用公司的產(chǎn)品為公司節(jié)約了不少成本,但是我們產(chǎn)品后續(xù)升級(jí)維護(hù)也必須重視起來,當(dāng)確認(rèn)出是webspeed本身問題后,聯(lián)系vasg相關(guān)人員進(jìn)行協(xié)調(diào)解決,根本沒有非常了解該產(chǎn)品技術(shù)人員支持,只是一個(gè)剛?cè)肼毜耐略谂浜蠝y試。調(diào)試了一周時(shí)間仍不能解決,最后只能作為一個(gè)遺留問題擱置。公司一直在向產(chǎn)品化轉(zhuǎn)變,但是自身的產(chǎn)品維護(hù)、升級(jí)、管理仍然需要改進(jìn)。4已解密登錄請(qǐng)求4.1已解密登錄請(qǐng)求概述在應(yīng)用程序測試過程中,檢測到將未加密的登錄請(qǐng)求發(fā)送到服務(wù)器。由于登錄過程所用的部分輸入字段(例如:用戶名、密碼、電子郵件地址、社會(huì)保險(xiǎn)號(hào)碼,等等)是個(gè)人敏感信息,建議通過加密連接(如SSL)將其發(fā)送到服務(wù)器。任何以明文傳給服務(wù)器的信息都可能被竊,稍后可用來電子欺騙身份或偽裝用戶。此外,若干隱私權(quán)法規(guī)指出,用戶憑證之類的敏感信息一律以加密方式傳給網(wǎng)站。4.2安全風(fēng)險(xiǎn)及原因分析安全風(fēng)險(xiǎn)中,可能會(huì)竊取諸如用戶名和密碼等未經(jīng)加密即發(fā)送了的用戶登錄信息原因:諸如用戶名、密碼和信用卡號(hào)之類的敏感輸入字段未經(jīng)加密即進(jìn)行了傳遞AppScan掃描建議確保所有登錄請(qǐng)求都以加密方式發(fā)送到服務(wù)器。請(qǐng)確保敏感信息,例如:-用戶名-密碼-社會(huì)保險(xiǎn)號(hào)碼信用卡號(hào)碼-駕照號(hào)碼電子郵件地址-電話號(hào)碼-郵政編碼一律以加密方式傳給服務(wù)器。4.4應(yīng)用程序解決方案已解密的登錄請(qǐng)求,要求就是數(shù)據(jù)要加密傳輸。最簡單有效的解決方式采用SSL加密協(xié)議傳輸,但是由于EMA服務(wù)管理平臺(tái)業(yè)務(wù)的特殊性,采用SSL加密方式對(duì)現(xiàn)有的業(yè)務(wù)影響太大,所以最終沒有采用此種方式解決該問題,但個(gè)人在進(jìn)行測試過程中也嘗試在tomcat和jboss下SSL方式配置,寫下來供參考。Jboss內(nèi)核也是tomcat,所以兩者配置基本都是一樣,都是在生成證書文件后,在service.xml進(jìn)行配置:進(jìn)入到cmd進(jìn)入到j(luò)dkbin目錄下執(zhí)彳亍keytool-genkey-aliastomcat-keyalgRSA-keystorewebspeed.keystore生成證書在service.xml配己置SSL<Connectorport="8443”maxHttpHeaderSize="8192”maxThreads="150"minSpareThreads="25”maxSpareThreads="75”enableLookups="false"disableUploadTimeout="true”acceptCount="100"scheme="https"secure="true"clientAuth="false"sslProtocol="TLS"keystoreFile="C:\tomcat-5.5.26\conf\webspeed.keystore”keystorePass="1111aaaa"/>這樣配置后雖然可以通過https訪問,但仍然還可以通過8080使用普通的http訪問,所以還必須禁止普通模式登錄。所以還得在web.xml添加配置。01<security-constraint>0203<!--AuthorizationsettingforSSL-->0405<web-resource-collection>0607<web-resource-name>SSL</web-resource-name>0809<url-pattern>*.jsp</url-pattern>1011<url-pattern>*.action</url-pattern>1213</web-resource-collection>1415<user-data-constraint>1617<transport-guarantee>CONFIDENTIAL</transport-guarantee>1819</user-data-constraint>2021</security-constraint>2223<login-config>2425<!--AuthorizationsettingforSSL-->2627<auth-method>CLIENT-CERT</auth-method>2829<realm-name>ClientCertUsers-onlyArea</realm-name>3031</login-config>應(yīng)注意,由于項(xiàng)目的一些組件無法通過https,因此url-pattern字段只對(duì).jsp和.action進(jìn)行了限制,如果不做特定限制,則系統(tǒng)默認(rèn)是全部使用https傳輸。而且上述設(shè)置一旦在某個(gè)工程中出現(xiàn),那么當(dāng)前tomcat將全局采用這一配置。5跨站點(diǎn)請(qǐng)求偽造5.1跨站點(diǎn)請(qǐng)求偽造概述“跨站點(diǎn)偽造請(qǐng)求(CSRF)”攻擊可讓黑客以受害者的名義在易受攻擊的站點(diǎn)上運(yùn)行操作。當(dāng)易受攻擊的站點(diǎn)未適當(dāng)驗(yàn)證請(qǐng)求來源時(shí),便可能出現(xiàn)這個(gè)攻擊。這個(gè)漏洞的嚴(yán)重性取決于受影響的應(yīng)用程序的功能,例如,對(duì)搜索頁面的CSRF攻擊,嚴(yán)重性低于對(duì)轉(zhuǎn)帳頁面或概要更新頁面的CSRF攻擊。這項(xiàng)攻擊的執(zhí)行方式,是強(qiáng)迫受害者的瀏覽器向易受攻擊的站點(diǎn)發(fā)出HTTP請(qǐng)求。如果用戶目前已登錄受害者站點(diǎn),請(qǐng)求會(huì)自動(dòng)使用用戶的憑證(如會(huì)話Cookie、用戶的IP地址,以及其他瀏覽器認(rèn)證方法)。攻擊者利用這個(gè)方法來偽造受害者的身份,再代替他來提交操作。換句話來說,易受攻擊的站點(diǎn)未采取適當(dāng)措施來驗(yàn)證用戶實(shí)際是否想執(zhí)行特定操作。強(qiáng)迫受害者發(fā)送非預(yù)期的請(qǐng)求,方法有許多種:-通過電子郵件向受害者發(fā)送易受攻擊應(yīng)用程序的惡意鏈接。-在黑客的Web頁面上,放置一個(gè)易受攻擊的Web站點(diǎn)的熱鏈接(如圖像或幀)。-在公共論壇中,張貼易受攻擊站點(diǎn)的鏈接。-利用站點(diǎn)(或另一個(gè)站點(diǎn))的“跨站點(diǎn)腳本編制”或“鏈接注入”漏洞,將瀏覽器自動(dòng)重定向到易受攻擊的站點(diǎn)。如果攻擊者利用易受攻擊的站點(diǎn)本身的“鏈接注入”漏洞,可以增加用戶通過站點(diǎn)認(rèn)證的可能性,進(jìn)而增加攻擊成功的可能性。例如,攻擊者可以利用上述任何選項(xiàng)來誘惑受害者查看含有下列條目的頁面:<img src=〃http://bank/transfer?destination=John&money=1000〃style='visibility:hidden'>這會(huì)使受害者的瀏覽器自動(dòng)請(qǐng)求URL及瀏覽器的當(dāng)前憑證。如果這個(gè)銀行業(yè)站點(diǎn)易受到CSRF攻擊,它會(huì)根據(jù)應(yīng)用程序邏輯,從受害者的帳戶中,將1000美元轉(zhuǎn)賬到John的銀行帳戶。“跨站點(diǎn)偽造請(qǐng)求”攻擊也稱為CSRF(發(fā)音為C-Serf)、XSRF、“跨站點(diǎn)偽造引用”、“單鍵攻擊”以及“會(huì)話騎乘”。您可以利用下列方式來驗(yàn)證您的應(yīng)用程序是否易受到CSRF攻擊:檢查易受攻擊的鏈接/請(qǐng)求是否未包括攻擊者難以猜中的參數(shù)檢查易受攻擊的鏈接/請(qǐng)求是否會(huì)執(zhí)行只應(yīng)自愿執(zhí)行的操作含有用戶在不知不覺中提交的請(qǐng)求所能直接訪問的敏感操作的應(yīng)用程序,被視為很容易遭受CSRF攻擊。CSRF也可能出現(xiàn)在登錄頁面和注銷頁面上。由于攻擊者可以偽造來自受害者的連續(xù)注銷請(qǐng)求,因此CSRF可能導(dǎo)致服務(wù)拒絕。在登錄頁面上,CSRF可以允許攻擊者使用包含攻擊者用戶名和密碼的偽造請(qǐng)求來將客戶機(jī)登錄到攻擊者的賬戶中。登錄CSRF攻擊會(huì)帶有嚴(yán)重的后果,這取決于其他站點(diǎn)行為。例如,如果站點(diǎn)保留了用戶操作的歷史記錄(例如搜索歷史記錄),那么攻擊者將能夠在易受攻擊的站點(diǎn)上查看受害者之前執(zhí)行的操作。5.2安全風(fēng)險(xiǎn)及原因分析安全風(fēng)險(xiǎn)中,可能會(huì)竊取或操縱客戶會(huì)話和cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù)原因:應(yīng)用程序使用的認(rèn)證方法不充分AppScan掃描建議如果要避免CSRF攻擊,每個(gè)請(qǐng)求都應(yīng)該包含唯一標(biāo)識(shí),它是攻擊者所無法猜測的參數(shù)。建議的選項(xiàng)之一是添加取自會(huì)話cookie的會(huì)話標(biāo)識(shí),使它成為一個(gè)參數(shù)。服務(wù)器必須檢查這個(gè)參數(shù)是否符合會(huì)話cookie,若不符合,便廢棄請(qǐng)求。攻擊者無法猜測這個(gè)參數(shù)的原因是應(yīng)用于cookie的“同源策略”,因此,攻擊者無法偽造一個(gè)虛假的請(qǐng)求,讓服務(wù)器誤以為真。攻擊者難以猜測且無法訪問的任何秘密(也就是無法從其他域訪問),都可用來替換會(huì)話標(biāo)識(shí)。這可以防止攻擊者設(shè)計(jì)看似有效的請(qǐng)求。5.4應(yīng)用程序解決方案已解密的登錄請(qǐng)求,要求就是數(shù)據(jù)要加密傳輸。最簡單有效的解決方式采用SSL加密協(xié)議傳輸,但是由于EMA服務(wù)管理平臺(tái)業(yè)務(wù)的特殊性,采用SSL加密方式對(duì)現(xiàn)有的業(yè)務(wù)影響太大,所以最終沒有采用此種方式解決該問題,但個(gè)人在進(jìn)行測試過程中也嘗試在tomcat和jboss下SSL方式配置,寫下來供參考。6不充分賬戶封鎖6.1不充分賬戶封鎖概述蠻力攻擊是指惡意用戶發(fā)送大量可能的密碼和/或用戶名以訪問應(yīng)用程序的嘗試。由于該技術(shù)包含大量登錄嘗試,未限制允許的錯(cuò)誤登錄請(qǐng)求次數(shù)的應(yīng)用程序很容易遭到這類攻擊。因此,強(qiáng)烈建議您對(duì)帳戶限制允許的錯(cuò)誤登錄嘗試次數(shù),超過該次數(shù),便鎖定該帳戶。樣本利用:下列請(qǐng)求說明密碼猜測請(qǐng)求:http://site/login.asp?username二EXISTING_USERNAME&password二GUESSED.PASSWORD如果站點(diǎn)在若干次錯(cuò)誤嘗試之后并不鎖定測試的帳戶,攻擊者最終可能會(huì)發(fā)現(xiàn)帳戶密碼,并使用它來假冒帳戶的合法用戶。6.2安全風(fēng)險(xiǎn)及原因分析安全風(fēng)險(xiǎn)高,可能會(huì)升級(jí)用戶特權(quán)并通過Web應(yīng)用程序獲取管理許可權(quán)原因:Web應(yīng)用程序編程或配置不安全AppScan掃描建議請(qǐng)確定允許的登錄嘗試次數(shù)(通常是3-5次),確保超出允許的嘗試次數(shù)之后,便鎖定帳戶。為了避免真正的用戶因帳戶被鎖定而致電支持人員的麻煩,可以僅臨時(shí)性暫掛帳戶活動(dòng),并在特定時(shí)間段之后啟用帳戶。帳戶鎖定大約10分鐘,通常便足以阻止蠻力攻擊。6.4應(yīng)用程序解決方案根據(jù)掃描建議,web應(yīng)用程序設(shè)定允許登錄嘗試次數(shù),登錄連續(xù)失敗超過設(shè)定次數(shù),就鎖定用戶,失敗次數(shù)靈活配置。在用戶登錄時(shí)進(jìn)行驗(yàn)證:if(!encrypter.encrypt(userPassword).equalsIgnoreCase(user.getLOGIN_PASSWD()==null?"":user.getLOGIN_PASSWD()))(//更新此用戶登錄失敗次數(shù)this.updateLoginFailTimes(userCode);//如果用戶連續(xù)登錄失敗次數(shù)超過配置值則將其鎖定intloginLockTimes=this.getLoginLockTimes();if(this.getLoginFailTimes(userCode)>=loginLockTimes){this.lockUser(userCode);}thrownewMySecurityException("密碼不正確!用戶:"+userCode);}7啟用不安全HTTP方法7.1啟用不安全HTTP方法概述似乎Web服務(wù)器配置成允許下列其中一個(gè)(或多個(gè))HTTP方法(動(dòng)詞):-DELETE-SEARCH-COPY-MOVE-PROPFIND-PROPPATCH-MKCOL-LOCK-UNLOCK這些方法可能表示在服務(wù)器上啟用了WebDAV,可能允許未授權(quán)的用戶對(duì)其進(jìn)行利用。7.2安全風(fēng)險(xiǎn)及原因分析安全風(fēng)險(xiǎn)中,可能會(huì)在Web服務(wù)器上上載、修改或刪除Web頁面、腳本和文件原因:Web服務(wù)器或應(yīng)用程序服務(wù)器是以不安全的方式配置的AppScan掃描建議如果服務(wù)器不需要支持WebDAV,請(qǐng)務(wù)必禁用它,或禁止不必要的HTTP方法(動(dòng)詞)。7.4應(yīng)用程序解決方案修改web工程中web.xml,增加安全配置信息,禁用不必要HTTP方法<security-constraint><web-resource-collection><web-resource-name>HtmlAdaptor</web-resource-name><description>test</description><url-pattern>*.jsp</url-pattern><url-pattern>*.do</url-pattern><http-method>GET</http-method><http-method>POST</http-method><http-method>PUT</http-method><http-method>DELETE</http-method><http-method>HEAD</http-method><http-method>OPTIONS</http-method><http-method>TRACE</http-method></web-resource-collection><!--<auth-constraint><role-name>JBossAdmin</role-name></auth-constraint>--></security-constraint>°8HTTP注釋敏感信息8.1HTTP注釋敏感信息概述很多Web應(yīng)用程序程序員使用HTML注釋,以在需要時(shí)幫助調(diào)試應(yīng)用程序。盡管添加常規(guī)注釋有助于調(diào)試應(yīng)用程序,但一些程序員往往會(huì)遺留重要數(shù)據(jù)(例如:與Web應(yīng)用程序相關(guān)的文件名、舊的鏈接或原非供用戶瀏覽的鏈接、舊的代碼片段等)。8.2安全風(fēng)險(xiǎn)及原因分析安全風(fēng)險(xiǎn)低,能會(huì)收集有關(guān)Web應(yīng)用程序的敏感信息,如用戶名、密碼、機(jī)器名和/或敏感文件位置原因:程序員在Web頁面上留下調(diào)試信息AppScan掃描建議請(qǐng)勿在HTML注釋中遺留任何重要信息(如文件名或文件路徑)。從生產(chǎn)站點(diǎn)注釋中除去以前(或未來)站點(diǎn)鏈接的跟蹤信息。避免在HTML注釋中放置敏感信息。確保HTML注釋不包括源代碼片段。確保程序員沒有遺留重要信息。8.4應(yīng)用程序解決方案雖然這個(gè)漏洞為低級(jí)別漏洞,但電信方也是要求必須修復(fù),要修改此漏洞需要檢查工程中的每一個(gè)jsp頁面,工作量還是挺大。所以在后續(xù)開發(fā)過程中注釋盡量寫英文注釋,盡量不要遺留敏感注釋信息在jsp代碼中,養(yǎng)成良好的編碼習(xí)慣才是解決問題根本。9發(fā)現(xiàn)電子郵件地址模式9.1發(fā)現(xiàn)電子郵件地址模式概述Spambot搜尋因特網(wǎng)站點(diǎn),開始查找電子郵件地址來構(gòu)建發(fā)送自發(fā)電子郵件(垃圾郵件)的郵件列表。AppScan檢測到含有一或多個(gè)電子郵件地址的響應(yīng),可供利用以發(fā)送垃圾郵件。而且,找到的電子郵件地址也可能是專用電子郵件地址,對(duì)于一般大眾應(yīng)是不可訪問的。9.2安全風(fēng)險(xiǎn)及原因分析安全風(fēng)險(xiǎn)低,能會(huì)收集有關(guān)Web應(yīng)用程序的敏感信息,如用戶名、密碼、機(jī)器名和/或敏感文件位置原因:Web應(yīng)用程序編程或配置不安全AppScan掃描建議從Web站點(diǎn)中除去任何電子郵件地址,使惡意的用戶無從利用。9.4應(yīng)用程序解決方案根據(jù)掃描建議刪除注釋中出現(xiàn)email地址信息,如果頁面中要顯示mail地址轉(zhuǎn)為圖片形式展示。如:ema服務(wù)管理平臺(tái)首頁需要展示客戶聯(lián)系方式,并且聯(lián)系方式、email等信息,這些信息用戶都是可以自行修改的,因?yàn)榘薳mail地址,所以聯(lián)系方式就轉(zhuǎn)為圖片形式:<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><%@includefile="/common/taglib.jsp"%><%@includefile="/common/chart.jsp"%><%@pageimport="java.util.List,java.util.*,java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*"%><%@pageimport="rmationService.publish.dao.TB_SYS_SUPPORT_STAFFDao”%><html:htmllocale="true"><head><%@includefile="/common/link.jsp"%><%@pageimport="com.sitech.ismp.util.context.CommUtil"%></head><linkhref="/css/style.css"rel="stylesheet"type="text/css"><scripttype="text/javascript"src="/js/pub.js"></script><linkrel="stylesheet"type="text/css"media="all"href="/css/calendar-win2k-cold-1.css"title="win2k-cold-1"/><body><html:formaction="/homeContactShow"method="post"styleId="theForm"><bean:defineid="theForm"name="supportStaffForm"/><DIVclass=bgid=left><div><tablewidth="100%"border="0"cellpadding="0"cellspacing="0"class="tablebg"><TBODY><tr><tdclass="tableheadbg"運(yùn)營中心聯(lián)系方式</td></tr><tr><tdclass="tablewhitebg"><%ListtypeList=(List)request.getAttribute("typeList");out.clear();out=pageContext.pushBody();response.setContentType("image/jpeg");response.addHeader("pragma","NO-cache");response.addHeader("Cache-Control","no-cache");response.addDateHeader("Expries",0);introwheight=20;intwidth=135,height=rowheight*typeList.size();TB_SYS_SUPPORT_STAFFDaodao=newTB_SYS_SUPPORT_STAFFDao();Stringty="";Stringmob="";for(inti=0;i<typeList.size();i++){HashMaphm=(HashMap)typeList.get(i);ty=(String)hm.get("TYPE_ID");Liststa=(List)dao.findSupportStaffByTypeId(ty);for(intk=0;k<sta.size();k++){HashMapmap=(HashMap)sta.get(k);mob=(String)map.get("MOBILE");height+=3*rowheight;if(mob!=null)height+=rowheight;}}BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);Graphicsg=image.getGraphics();g.setColor(Color.white);g.fillRect(0,0,width,height);g.setColor(Color.BLUE);Fontfont=newFont("宋體",F(xiàn)ont.PLAIN,13);g.setFont(font);introw=0;Stringtypeid="";Stringtypename="";Stringname="";Stringtel="";Stringmail="";Stringmobile="";for(inti=0;i<typeList.size();i++){HashMaphm=(HashMap)typeList.get(i);typeid=(String)hm.get("TYPE_ID");typename=(String)hm.get("TYPE_NAME");row++;g.drawString(typename,0,(row-1)*rowheight+10);Liststaffs=(List)dao.findSupportStaffByTypeId(typeid);for(intk=0;k<staffs.size();k++){HashMapmap=(HashMap)staffs.get(k);name=(String)map.get("NAME");tel=(String)map.get("TEL");mail=(String)map.get("MAIL");mobile=(String)map.get("MOBILE");row++;g.drawString(name+":"+tel,0,(row-1)*rowheight+10);row++;g.drawString(mail,0,(row-1)*rowheight+10);if(mobile!=null){row++;g.drawString(mail,0,(row-1)*rowheight+10);}}}g.dispose();ServletOutputStreamoutStream=response.getOutputStream();JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(outStream);encoder.encode(image);outStream.close();%></td></tr></TBODY></table></div></DIV></html:form></body></html:html>10通過框架釣魚10.1通過框架釣魚概述網(wǎng)絡(luò)釣魚是一個(gè)通稱,代表試圖欺騙用戶交出私人信息,以便電子欺騙身份。攻擊者有可能注入frame或iframe標(biāo)記,其中含有類似受攻擊之網(wǎng)站的惡意屬性。不小心的用戶有可能瀏覽它,但并不知道他正在離開原始網(wǎng)站,沖浪到惡意的網(wǎng)站。之后,攻擊者便可以誘惑用戶重新登錄,然后獲取他的登錄憑證。偽造的網(wǎng)站嵌入在原始網(wǎng)站中,這個(gè)情況對(duì)攻擊者有幫助,因?yàn)樗木W(wǎng)絡(luò)釣魚企圖會(huì)披上更可信賴的外表。樣本利用:如果參數(shù)值未經(jīng)適當(dāng)清理,便反映在響應(yīng)中,下列請(qǐng)求:http://[SERVER]/script.aspx?parameter=<frame name="evil”src="">會(huì)使響應(yīng)含有通往這個(gè)邪惡站點(diǎn)的框架。10.2安全風(fēng)險(xiǎn)及原因分析安全風(fēng)險(xiǎn)中,可能會(huì)勸說初級(jí)用戶提供諸如用戶名、密碼、信用卡號(hào)、社會(huì)保險(xiǎn)號(hào)等敏感信息原因:對(duì)用戶輸入正確執(zhí)行危險(xiǎn)字符清理AppScan掃描建議若干問題的補(bǔ)救方法在于對(duì)用戶輸入進(jìn)行清理。通過驗(yàn)證用戶輸入未包含危險(xiǎn)字符,便可能防止惡意的用戶導(dǎo)致應(yīng)用程序執(zhí)行計(jì)劃外的任務(wù),例如:啟動(dòng)任意SQL查詢、嵌入將在客戶端執(zhí)行的Javascript代碼、運(yùn)行各種操作系統(tǒng)命令,等等。建議過濾出所有以下字符:|(豎線符號(hào))&(&符號(hào));(分號(hào))$(美元符號(hào))%(百分比符號(hào))@(at符號(hào))'(單引號(hào))〃(引號(hào))\'(反斜杠轉(zhuǎn)義單引號(hào))\"(反斜杠轉(zhuǎn)義引號(hào))<>(尖括號(hào))()(括號(hào))+(加號(hào))CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a),(逗號(hào))\(反斜杠)以下部分描述各種問題、問題的修訂建議以及可能觸發(fā)這些問題的危險(xiǎn)字符:SQL注入和SQL盲注:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用存儲(chǔ)過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖。當(dāng)使用存儲(chǔ)過程時(shí),請(qǐng)利用ADO命令對(duì)象來實(shí)施它們,以強(qiáng)化變量類型。清理輸入以排除上下文更改符號(hào),例如:,(單引號(hào))-(引號(hào))\'(反斜線轉(zhuǎn)義單引號(hào))\"(反斜杠轉(zhuǎn)義引號(hào)))(結(jié)束括號(hào));(分號(hào))跨站點(diǎn)腳本編制:清理用戶輸入,并過濾出JavaScript代碼。我們建議您過濾下列字符:<>(尖括號(hào))-(引號(hào))'(單引號(hào))%(百分比符號(hào));(分號(hào))()(括號(hào))&(&符號(hào))+(加號(hào))如果要修訂<%00script>變體,請(qǐng)參閱MS文章821349對(duì)于UTF-7攻擊:[-]可能的話,建議您施行特定字符集編碼(使用'Content-Type'頭或<meta>標(biāo)記)。HTTP響應(yīng)分割:清理用戶輸入(至少是稍后嵌入在HTTP響應(yīng)中的輸入)。請(qǐng)確保輸入未包含惡意的字符,例如:CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a)遠(yuǎn)程命令執(zhí)行:清理輸入以排除對(duì)執(zhí)行操作系統(tǒng)命令有意義的符號(hào),例如:|(豎線符號(hào))&(&符號(hào));(分號(hào))執(zhí)行shell命令:絕不將未檢查的用戶輸入傳遞給eval()、open()、sysopen()、system()之類的Perl命令。確保輸入未包含惡意的字符,例如:$(美元符號(hào))%(百分比符號(hào))@(at符號(hào))XPath注入:清理輸入以排除上下文更改符號(hào),例如:'(單引號(hào))-(引號(hào))等LDAP注入:使用正面驗(yàn)證。字母數(shù)字過濾(A..Z,a..z,0..9)適合大部分LDAP查詢。應(yīng)該過濾出或進(jìn)行轉(zhuǎn)義的特殊LDAP字符:在字符串開頭的空格或“#”字符在字符串結(jié)尾的空格字符,(逗號(hào))+(加號(hào))〃(引號(hào))\(反斜杠)<>(尖括號(hào));(分號(hào))()(括號(hào))MX注入:應(yīng)該過濾出特殊MX字符:CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a)記錄偽造:應(yīng)該過濾出特殊記錄字符:CR(回車符,ASCII0x0d)LF(換行,ASCII0x0a)BS(退格,ASCII0x08)ORM注入:確保用戶輸入的值和類型(如Integer、Date等)有效,且符合應(yīng)用程序預(yù)期。利用存儲(chǔ)過程,將數(shù)據(jù)訪問抽象化,讓用戶不直接訪問表或視圖。使用參數(shù)化查詢API清理輸入以排除上下文更改符號(hào),例如:(*):'(單引號(hào))〃(引號(hào))\'(反斜線轉(zhuǎn)義單引號(hào))\"(反斜杠轉(zhuǎn)義引號(hào)))(結(jié)束括號(hào));(分號(hào))(*)這適用于SQL。高級(jí)查詢語言可能需要不同的清理機(jī)制。10.4應(yīng)用程序解決方案新建一個(gè)過濾器,通過過濾器過濾SQL注入特殊字符,配置成功后,重啟服務(wù),用Appsan工具掃描,漏洞得到解決,具體實(shí)現(xiàn)方式如下:1、 在web.xml文件中配置過濾器<filter-mapping><filter-name>requestEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>InjectFilter</filter-name><filter

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論