![常見(jiàn)WEB開(kāi)發(fā)安全漏洞原因分析及解決_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/3/7a37e0b4-ff1c-4da8-a430-5b641fa33fb4/7a37e0b4-ff1c-4da8-a430-5b641fa33fb41.gif)
![常見(jiàn)WEB開(kāi)發(fā)安全漏洞原因分析及解決_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/3/7a37e0b4-ff1c-4da8-a430-5b641fa33fb4/7a37e0b4-ff1c-4da8-a430-5b641fa33fb42.gif)
![常見(jiàn)WEB開(kāi)發(fā)安全漏洞原因分析及解決_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/3/7a37e0b4-ff1c-4da8-a430-5b641fa33fb4/7a37e0b4-ff1c-4da8-a430-5b641fa33fb43.gif)
![常見(jiàn)WEB開(kāi)發(fā)安全漏洞原因分析及解決_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/3/7a37e0b4-ff1c-4da8-a430-5b641fa33fb4/7a37e0b4-ff1c-4da8-a430-5b641fa33fb44.gif)
![常見(jiàn)WEB開(kāi)發(fā)安全漏洞原因分析及解決_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-8/3/7a37e0b4-ff1c-4da8-a430-5b641fa33fb4/7a37e0b4-ff1c-4da8-a430-5b641fa33fb45.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、常見(jiàn)WEB開(kāi)發(fā)安全漏洞 原因分析及解決 目目 錄錄 1會(huì)話標(biāo)識(shí)未更新會(huì)話標(biāo)識(shí)未更新.3 1.1原因.3 1.2解決.3 2SQL注入注入.3 2.1原因.3 2.2解決.5 3XSS跨站腳本編制跨站腳本編制 .5 3.1原因.5 3.2解決.5 4XSRF跨站請(qǐng)求偽造跨站請(qǐng)求偽造.7 4.1原因.7 4.2解決.8 5登錄錯(cuò)誤消息憑證枚舉(不充分帳戶封鎖)登錄錯(cuò)誤消息憑證枚舉(不充分帳戶封鎖).8 5.1原因.8 5.2解決.9 6HTML注釋敏感信息泄露注釋敏感信息泄露 .9 6.1原因.9 6.2解決.9 7應(yīng)用程序錯(cuò)誤應(yīng)用程序錯(cuò)誤.9 7.1原因.9 7.2解決.9 8已解密的登錄請(qǐng)求已
2、解密的登錄請(qǐng)求.9 8.1原因.9 8.2解決.9 9啟用了不安全的啟用了不安全的HTTP方法方法.10 9.1原因.10 9.2解決.10 10禁止頁(yè)面緩存禁止頁(yè)面緩存.11 10.1原因.11 10.2解決.11 11數(shù)據(jù)庫(kù)錯(cuò)誤模式數(shù)據(jù)庫(kù)錯(cuò)誤模式.11 11.1原因.11 11.2解決.12 1 會(huì)話標(biāo)識(shí)未更新會(huì)話標(biāo)識(shí)未更新 1.1原因 在用戶進(jìn)入登錄頁(yè)面,但還未登錄時(shí),就已經(jīng)產(chǎn)生了一個(gè)session,用戶輸入信息,登錄以后, session的id不會(huì)改變,也就是說(shuō)還是以前的那個(gè)session(事實(shí)上session也確實(shí)不會(huì)改變,因?yàn)?沒(méi)有建立新session,原來(lái)的session也沒(méi)有被
3、銷毀)。 很多人只是讓會(huì)話invalidate沒(méi)有用(request.getSession().invalidate();),是因?yàn)?invalidate方法不是真正的將session銷毀,只是將session中的內(nèi)容清空,所以當(dāng)invalidate以 后再新建session,新建的session其實(shí)不是新的,是將之前的session重新啟用了。于是session 的id不變就不奇怪了。只有cookie失效掉,才能換成新的session id 1.2解決 在登錄頁(yè)面上加上一段代碼: request.getSession().invalidate() ; /清空 session if (requ
4、est.getCookies()!=null) Cookie cookie = request.getCookies()0; / 獲取 cookie cookie.setMaxAge(0); / 讓 cookie 過(guò)期 注:會(huì)話失效后,請(qǐng)不要在代碼前面使用 SESSION 保存數(shù)據(jù)。 2 SQL注入注入 2.1原因 1. 沒(méi)有正確過(guò)濾轉(zhuǎn)義字符 在用戶的輸入沒(méi)有為轉(zhuǎn)義字符過(guò)濾時(shí),就會(huì)發(fā)生這種形式的注入式攻擊,它會(huì)被傳遞給一個(gè) SQL語(yǔ)句。這樣就會(huì)導(dǎo)致應(yīng)用程序的終端用戶對(duì)數(shù)據(jù)庫(kù)上的語(yǔ)句實(shí)施操縱。比方說(shuō),下面的這行代 碼就會(huì)演示這種漏洞: statement := SELECT * FROM use
5、rs WHERE name = + userName + ; 將用戶名變量(即username)設(shè)置為:a or t=t,此時(shí)原始語(yǔ)句發(fā)生了變化. 2. 用戶輸入錯(cuò)誤的數(shù)據(jù)類型 如果一個(gè)用戶提供的字段并非一個(gè)強(qiáng)類型,或者沒(méi)有實(shí)施類型強(qiáng)制,就會(huì)發(fā)生這種形式的攻 擊。當(dāng)在一個(gè)SQL語(yǔ)句中使用一個(gè)數(shù)字字段時(shí),如果程序員沒(méi)有檢查用戶輸入的合法性(是否為數(shù) 字型)就會(huì)發(fā)生這種攻擊。例如: statement := SELECT * FROM data WHERE id = + a_variable + ; 從這個(gè)語(yǔ)句可以看出,作者希望a_variable是一個(gè)與“id”字段有關(guān)的數(shù)字。不過(guò),如果終 端用
6、戶選擇一個(gè)字符串,就繞過(guò)了對(duì)轉(zhuǎn)義字符的需要。例如,將a_variable設(shè)置為:1; DROP TABLE users,它會(huì)將“users”表從數(shù)據(jù)庫(kù)中刪除,SQL語(yǔ)句變成: SELECT * FROM DATA WHERE id = 1; DROP TABLE users; 3. 數(shù)據(jù)庫(kù)服務(wù)器中的漏洞 有時(shí),數(shù)據(jù)庫(kù)服務(wù)器軟件中也存在著漏洞,如MYSQL服務(wù)器中mysql_real_escape_string()函 數(shù)漏洞。這種漏洞允許一個(gè)攻擊者根據(jù)錯(cuò)誤的統(tǒng)一字符編碼執(zhí)行一次成功的SQL注入式攻擊。 4. 盲目SQL注入式攻擊 當(dāng)一個(gè)Web應(yīng)用程序易于遭受攻擊而其結(jié)果對(duì)攻擊者卻不見(jiàn)時(shí),就會(huì)發(fā)生
7、所謂的盲目SQL注入 式攻擊。有漏洞的網(wǎng)頁(yè)可能并不會(huì)顯示數(shù)據(jù),而是根據(jù)注入到合法語(yǔ)句中的邏輯語(yǔ)句的結(jié)果顯示 不同的內(nèi)容。這種攻擊相當(dāng)耗時(shí),因?yàn)楸仨殲槊恳粋€(gè)獲得的字節(jié)而精心構(gòu)造一個(gè)新的語(yǔ)句。但是 一旦漏洞的位置和目標(biāo)信息的位置被確立以后,一種稱為Absinthe的工具就可以使這種攻擊自動(dòng) 化。 5. 條件響應(yīng) 注意,有一種SQL注入迫使數(shù)據(jù)庫(kù)在一個(gè)普通的應(yīng)用程序屏幕上計(jì)算一個(gè)邏輯語(yǔ)句的值: SELECT booktitle FROM booklist WHERE bookId = OOk14cd AND 1=1 這會(huì)導(dǎo)致一個(gè)標(biāo)準(zhǔn)的面面,而語(yǔ)句 SELECT booktitle FROM book
8、list WHERE bookId = OOk14cd AND 1=2 在頁(yè)面易于受到SQL注入式攻擊時(shí),它有可能給出一個(gè)不同的結(jié)果。如此這般的一次注入將會(huì) 證明盲目的SQL注入是可能的,它會(huì)使攻擊者根據(jù)另外一個(gè)表中的某字段內(nèi)容設(shè)計(jì)可以評(píng)判真?zhèn)蔚?語(yǔ)句。 6. 條件性差錯(cuò) 如果WHERE語(yǔ)句為真,這種類型的盲目SQL注入會(huì)迫使數(shù)據(jù)庫(kù)評(píng)判一個(gè)引起錯(cuò)誤的語(yǔ)句,從而 導(dǎo)致一個(gè)SQL錯(cuò)誤。例如: SELECT 1/0 FROM users WHERE username=Ralph。 顯然,如果用戶Ralph存在的話,被零除將導(dǎo)致錯(cuò)誤。 7.時(shí)間延誤 時(shí)間延誤是一種盲目的SQL注入,根據(jù)所注入的邏輯,它
9、可以導(dǎo)致SQL引擎執(zhí)行一個(gè)長(zhǎng)隊(duì)列或 者是一個(gè)時(shí)間延誤語(yǔ)句。攻擊者可以衡量頁(yè)面加載的時(shí)間,從而決定所注入的語(yǔ)句是否為真。 2.2解決 1. 用預(yù)編譯處理語(yǔ)言 要防御SQL注入,用戶的輸入就絕對(duì)不能直接被嵌入到SQL語(yǔ)句中。恰恰相反,用戶的輸入必 須進(jìn)行過(guò)濾,或者使用參數(shù)化的語(yǔ)句。參數(shù)化的語(yǔ)句使用參數(shù)而不是將用戶輸入嵌入到語(yǔ)句中。 在多數(shù)情況中,SQL語(yǔ)句就得以修正。然后,用戶輸入就被限于一個(gè)參數(shù)。下面是一個(gè)使用Java和 JDBC API例子: PreparedStatement prep = conn.prepareStatement(SELECT * FROM USERS WHERE PAS
10、SWORD=?); prep.setString(1, pwd); 總體上講,有兩種方法可以保證應(yīng)用程序不易受到SQL注入的攻擊,一是使用代碼復(fù)查,二是 強(qiáng)迫使用參數(shù)化語(yǔ)句的。強(qiáng)迫使用參數(shù)化的語(yǔ)句意味著嵌入用戶輸入的SQL語(yǔ)句在運(yùn)行時(shí)將被拒絕。 2. 軌范出錯(cuò)處理 防范SQL注入,還要避免出現(xiàn)一些詳細(xì)的錯(cuò)誤消息,因?yàn)楹诳蛡兛梢岳眠@些消息。要使用一 種標(biāo)準(zhǔn)的輸入確認(rèn)機(jī)制來(lái)驗(yàn)證所有的輸入數(shù)據(jù)的長(zhǎng)度、類型、語(yǔ)句、企業(yè)規(guī)則等。 3. 使用專業(yè)的漏洞掃描工具 但防御SQL注入攻擊也是不夠的。攻擊者們目前正在自動(dòng)搜索攻擊目標(biāo)并實(shí)施攻擊。其技術(shù)甚 至可以輕易地被應(yīng)用于其它的Web架構(gòu)中的漏洞。企業(yè)應(yīng)當(dāng)投資
11、于一些專業(yè)的漏洞掃描工具,如大 名鼎鼎的Acunetix的Web漏洞掃描程序等。一個(gè)完善的漏洞掃描程序不同于網(wǎng)絡(luò)掃描程序,它專門(mén) 查找網(wǎng)站上的SQL注入式漏洞。最新的漏洞掃描程序可以查找最新發(fā)現(xiàn)的漏洞。 3 XSS跨站腳本編制跨站腳本編制 3.1原因 它指的是惡意攻擊者往Web頁(yè)面里插入惡意html代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里 面的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。XSS屬于被動(dòng)式的攻擊,因?yàn)槠浔粍?dòng)且不 好利用,所以許多人常忽略其危害性。 3.2解決 在防止這類問(wèn)題時(shí),輸入內(nèi)容的轉(zhuǎn)義效果遠(yuǎn)比內(nèi)容過(guò)濾要好。 具體實(shí)施可以增加一個(gè)request的轉(zhuǎn)碼過(guò)濾器。代碼: p
12、ackage com.apusic.portal.sso; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.*; i
13、mport java.util.*; /* * Servlet Filter implementation class SqlEscapeFilter */ public class SqlEscapeFilter implements Filter /* * Default constructor. */ public SqlEscapeFilter() / TODO Auto-generated constructor stub /* * see Filter#destroy() */ public void destroy() / TODO Auto-generated method s
14、tub /* * see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException / TODO Auto-generated method stub / place your code here HttpServletRequest hreq = (HttpServlet
15、Request)request; Map map = hreq.getParameterMap(); Iterator itr = map.keySet().iterator(); while( itr.hasNext() ) String key = itr.next().toString(); String values = hreq.getParameterValues(key); if( values != null ) for( int i = 0; i values.length; i+ ) valuesi = cleanXSS(valuesi); hreq.setAttribut
16、e(key, values); / pass the request along the filter chain chain.doFilter(request, response); /* * see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException / TODO Auto-generated method stub private String cleanXSS(String value) value = value.replaceAll(, ); valu
17、e = value.replaceAll(, ).replaceAll(), ); value = value.replaceAll(, ); value = value.replaceAll(eval(.*), ); value = value.replaceAll(s*javascript:(.*), ); value = value.replaceAll(script, ); return value; 配置應(yīng)用中的web.xml Web.xml: SqlEscapeFilter SqlEscapeFilter com.apusic.portal.sso.SqlEscapeFilter
18、SqlEscapeFilter *.jsp 4 XSRF跨站請(qǐng)求偽造跨站請(qǐng)求偽造 4.1原因 CSRF利用方式比較類似XSS(跨站腳本 Cross Site Scripting) ,不過(guò)不同的是CSRF是構(gòu)造一 個(gè)提交來(lái)讓其他人訪問(wèn)后,利用站點(diǎn)對(duì)這些人的信任來(lái)進(jìn)行一些所期望的操作. 比如:A和B在同一個(gè)有XSS漏洞的站點(diǎn)C,B登錄過(guò)D站點(diǎn),并且有這個(gè)D站點(diǎn)的Cookies,這時(shí)候如 果A構(gòu)造一個(gè)CSRF,內(nèi)容為給 A在D站點(diǎn)的賬戶轉(zhuǎn)移一些虛擬幣,如果這時(shí)候在C站點(diǎn)瀏覽的B用戶打 開(kāi)了A構(gòu)造的含有CSRF的頁(yè)面,這時(shí)候B的D站點(diǎn)用戶會(huì)因?yàn)閷?duì)B用戶的信任而進(jìn)行給 A轉(zhuǎn)賬的操作. 4.2解決 此類攻
19、擊的情景相對(duì)的比較復(fù)雜,具體解決可以參考以下5點(diǎn): 第一:限制驗(yàn)證cookie的到期時(shí)間。這些cookie的合法時(shí)間越短,黑客利用你的Web應(yīng)用程序 的機(jī)會(huì)就越小。不過(guò),這個(gè)時(shí)間越短,用戶就越不方便。因此,你需要在安全性和方便性之間進(jìn) 行平衡。 第二:執(zhí)行重要業(yè)務(wù)之前,要求用戶提交額外的信息。要求用戶在進(jìn)行重要業(yè)務(wù)前輸入口令, 這可以防止黑客發(fā)動(dòng)CSRF攻擊(只要瀏覽器中沒(méi)有包含口令),因?yàn)檫@種重要信息無(wú)法預(yù)測(cè)或輕易 獲得。 第三:使用秘密的無(wú)法預(yù)測(cè)的驗(yàn)證符號(hào)。當(dāng)保存在用戶瀏覽器中的cookie僅由一次會(huì)話確認(rèn) 時(shí),CSRF攻擊才會(huì)有效。所以在每次HTTP請(qǐng)求(當(dāng)然攻擊者無(wú)法提前知道)中都有附
20、加的特定會(huì)話 的信息,這樣就可以挫敗CSRF攻擊。不過(guò),如果這種應(yīng)用程序存在跨站腳本漏洞,黑客就有可能 訪問(wèn)這種驗(yàn)證符號(hào)。 第四:使用定制的HTTP報(bào)頭。如果執(zhí)行交易的所有請(qǐng)求都使用XMLHttpRequest并附加一個(gè)定 制的HTTP報(bào)頭,同時(shí)拒絕缺少定制報(bào)頭的任何請(qǐng)求,就可以用XMLHttpRequest API來(lái)防御CSRF攻 擊。由于瀏覽器通常僅準(zhǔn)許站點(diǎn)將定制的HTTP報(bào)頭發(fā)送給相同站點(diǎn),從而了防止由CSRF攻擊的源 站點(diǎn)所發(fā)起的交易。 第五:檢查訪問(wèn)源的報(bào)頭。在瀏覽者發(fā)送HTTP請(qǐng)求時(shí),它通常會(huì)包含源自訪問(wèn)源報(bào)頭的URL。 理論上講,你可以使用這些信息來(lái)阻止源自其它任何站點(diǎn)(而不是來(lái)
21、自Web應(yīng)用程序自身)的請(qǐng)求。 綜合公司以往平臺(tái)報(bào)出此類漏洞產(chǎn)出的原因,基本上都可以通過(guò)以下簡(jiǎn)單做法加以解決: 在請(qǐng)求后面加上一次性令牌。如驗(yàn)證碼,手機(jī)短信驗(yàn)證,或者sessionID等。 5 登錄錯(cuò)誤消息憑證枚舉(不充分帳戶封鎖)登錄錯(cuò)誤消息憑證枚舉(不充分帳戶封鎖) 5.1原因 當(dāng)試圖利用不正確的憑證來(lái)登錄時(shí),當(dāng)用戶輸入無(wú)效的用戶名和無(wú)效的密碼時(shí),應(yīng)用程序會(huì) 分別生成不同的錯(cuò)誤消息。通過(guò)利用該行為攻擊者可以通過(guò)反復(fù)試驗(yàn),加暴力破解來(lái)發(fā)現(xiàn)應(yīng)用程 序的有效用戶名、再繼續(xù)嘗試發(fā)現(xiàn)相關(guān)聯(lián)的密碼。 5.2解決 不論用戶名或密碼出現(xiàn)問(wèn)題都提示同樣的錯(cuò)誤,且同時(shí)加上登陸失敗次數(shù)達(dá)到規(guī)定次數(shù),則 執(zhí)行帳戶
22、鎖定功能。 6 HTML注釋敏感信息泄露注釋敏感信息泄露 6.1原因 頁(yè)面源代碼不正確的注釋方式。 6.2解決 將html中有關(guān)密碼之類的敏感注釋去掉或者用隱式注釋。 7 應(yīng)用程序錯(cuò)誤應(yīng)用程序錯(cuò)誤 7.1原因 未執(zhí)行驗(yàn)證,可能輸入?yún)?shù)數(shù)據(jù)類型不匹配。 7.2解決 實(shí)行嚴(yán)格的數(shù)據(jù)類型驗(yàn)證。 8 已解密的登錄請(qǐng)求已解密的登錄請(qǐng)求 8.1原因 AppScan 的推理是“AppScan 識(shí)別了不是通過(guò)SSL 發(fā)送的密碼參數(shù)。 8.2解決 第一:采用基于SSL的HTTPS傳輸協(xié)議 第二:對(duì)敏感信息加密并繞過(guò)掃描(只要不是采用SSL安全認(rèn)證即使加密了但是AppScan還是 會(huì)掃描出來(lái)) 將type為pas
23、sword的改為text,然后用JS做一個(gè)假的密碼輸入框,AppScan會(huì)掃描type為password的控件。 function hiddenPass() var pass = document.getElementById(password1); var j_pass = document.getElementById(password); if(event.keyCode=13) check(); var keycode=event.keyCode; var keychar=String.fromCharCode(keycode); j_pass.value=j_pass.value+k
24、eychar; j_pass.value=j_pass.value.substring(0,pass.length); function clearPass() $(#password1).val(); $(#password).val(); 然后傳輸密碼的時(shí)候加個(gè)密: password = base64encode(password); 9 啟用了不安全的啟用了不安全的HTTP方法方法 9.1原因 除標(biāo)準(zhǔn)的GET與POST方法外,HTTP請(qǐng)求還使用其他各種方法。許多這類方法主要用于完成不常 見(jiàn)與特殊的任務(wù)。如果低權(quán)限用戶可以訪問(wèn)這些方法,他們就能夠以此向應(yīng)用程序?qū)嵤┯行Ч簟?以下是一些值得
25、注意的方法: PUT,向指定的目錄上傳附加文件; DELETE,刪除指定的資源; COPY,將指定的資源復(fù)制到Destination消息頭指定的位置; MOVE,將指定的資源移動(dòng)到Destination消息頭指定的位置; SEARCH,在一個(gè)目錄路徑中搜索資源。 PROPFIND,獲取與指定資源有關(guān)的信息,如作者、大小與內(nèi)容類型。 TRACE,在響應(yīng)中返回服務(wù)器收到的原始請(qǐng)求??梢允褂眠@種方法避開(kāi)阻止跨站點(diǎn)腳本的防御 9.2解決 如何禁止DELETE、PUT、OPTIONS、TRACE、HEAD等協(xié)議訪問(wèn)應(yīng)用程序應(yīng)用程序呢? 解決方法 第一步:修改應(yīng)用程序的web.xml文件的協(xié)議 1. 2. 第二步:在應(yīng)用程序的web.xml中添加如下的代碼即可 1. 2. 3./* 4.PUT 5.DELETE 6.HEAD 7.OPTIONS 8.TRACE 9. 10. 11. 12. 13. 14. BASIC 15. 10 禁止頁(yè)面緩存禁止頁(yè)面緩存 10.1 原因 能夠訪問(wèn)到緩存的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)用衛(wèi)生材料敷料合作協(xié)議書(shū)
- 2025年雷達(dá)車合作協(xié)議書(shū)
- 2025年國(guó)土資源普查核儀器合作協(xié)議書(shū)
- 人教版 八年級(jí)英語(yǔ)下冊(cè) Unit 3 單元綜合測(cè)試卷(2025年春)
- 2025年氯磺化聚乙烯合作協(xié)議書(shū)
- 2025年九年級(jí)第二學(xué)期班主任德育工作總結(jié)(二篇)
- 2025年互聯(lián)網(wǎng)科技公司股東合作協(xié)議模板(2篇)
- 2025年產(chǎn)品配送委托合同(三篇)
- 2025年產(chǎn)品總代理合同參考模板(2篇)
- 2025年產(chǎn)品年度區(qū)域銷量合同(三篇)
- 《梅大高速茶陽(yáng)路段“5·1”塌方災(zāi)害調(diào)查評(píng)估報(bào)告》專題警示學(xué)習(xí)
- 2024年09月北京中信銀行北京分行社會(huì)招考(917)筆試歷年參考題庫(kù)附帶答案詳解
- 《大健康解讀》課件
- 2025年度交通運(yùn)輸規(guī)劃外聘專家咨詢協(xié)議3篇
- 專項(xiàng)債券培訓(xùn)課件
- 《會(huì)務(wù)的組織和管理》課件
- 物理調(diào)查問(wèn)卷
- 給排水管道工程分項(xiàng)、分部、單位工程劃分
- 《傻子上學(xué)》臺(tái)詞
- 高中英語(yǔ)新課程標(biāo)準(zhǔn)解讀 (課堂PPT)
- 石灰石石膏濕法脫硫化學(xué)分析方案
評(píng)論
0/150
提交評(píng)論