02命令執(zhí)行代碼注入漏洞(43頁)ppt課件_第1頁
02命令執(zhí)行代碼注入漏洞(43頁)ppt課件_第2頁
02命令執(zhí)行代碼注入漏洞(43頁)ppt課件_第3頁
02命令執(zhí)行代碼注入漏洞(43頁)ppt課件_第4頁
02命令執(zhí)行代碼注入漏洞(43頁)ppt課件_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、命令執(zhí)行/代碼注入破綻王朋濤深服氣北京平安團隊命令執(zhí)行/代碼注入破綻概述命令執(zhí)行/代碼注入破綻分類引見命令執(zhí)行/代碼注入破綻發(fā)掘方法命令執(zhí)行/代碼注入破綻攻擊防御總結(jié)培訓(xùn)提綱命令執(zhí)行/代碼注入破綻概述命令執(zhí)行/代碼注入破綻概述命令執(zhí)行/代碼注入破綻的出現(xiàn) 運用程序直接/間接運用了動態(tài)執(zhí)行命令的危險函數(shù),并且這個函數(shù)的運轉(zhuǎn)參數(shù)是用戶可控的。如php可動態(tài)執(zhí)行系統(tǒng)命令的函數(shù):system、exec、passthru等等,php可動態(tài)執(zhí)行php代碼的有eval;jsp可動態(tài)執(zhí)行系統(tǒng)命令的函數(shù)有: Runtime.getRuntime().exec(.);asp/aspx可動態(tài)執(zhí)行asp/aspx代碼

2、的有:eval等等。命令執(zhí)行/代碼注入破綻的本質(zhì) 程序設(shè)計違背了“數(shù)據(jù)與代碼分別的原那么。命令執(zhí)行/代碼注入破綻分類引見命令執(zhí)行/代碼注入破綻分類引見命令或代碼直接注入執(zhí)行破綻命令或代碼本地包含執(zhí)行破綻命令或代碼遠(yuǎn)程包含執(zhí)行破綻命令或代碼反序列化執(zhí)行破綻命令或代碼動態(tài)變量執(zhí)行破綻命令或代碼動態(tài)函數(shù)執(zhí)行破綻命令執(zhí)行/代碼注入破綻分類引見命令或代碼直接注入執(zhí)行破綻概述命令注入:運用程序直接運用了危險的可執(zhí)行系統(tǒng)命令的函數(shù),比如php的system、exec函數(shù)等,并且這些函數(shù)的運轉(zhuǎn)參數(shù)是用戶可控的,假設(shè)過濾不嚴(yán)厲,就會增大命令執(zhí)行破綻的概率。命令或代碼本地包含執(zhí)行破綻。代碼注入:運用程序直接運用了

3、危險的代碼執(zhí)行函數(shù),如php/asp/aspx的eval函數(shù)等,并且這些函數(shù)的運轉(zhuǎn)參數(shù)是用戶可控的,假設(shè)過濾不嚴(yán)厲,就會增大命令執(zhí)行破綻的概率。命令執(zhí)行/代碼注入破綻分類引見命令直接注入例如1(CGI)系統(tǒng)命令注入執(zhí)行破綻例如,就比如去年很火的Bash破綻,就屬于這類破綻,用戶可直接更改HTTP頭User-Agent的值,就可引發(fā)命令注入,如以下圖命令執(zhí)行結(jié)果將從效力器上下載一個php文件到本地:命令執(zhí)行/代碼注入破綻分類引見命令直接注入例如2(PHP)系統(tǒng)命令注入執(zhí)行破綻例如,如效力器端用php言語實現(xiàn),并且有個system.php文件的內(nèi)容含有如下片段eval(“$_GETarg;); ,

4、或類似的片段,就會存在此破綻。如以下圖:命令執(zhí)行/代碼注入破綻分類引見命令直接注入例如2假設(shè)用戶輸入的參數(shù)arg的值為精心組裝過的,如:IP/test.php?arg=cat /etc/passwd最后執(zhí)行的命令就變成了 system(cat /etc/passwd),輸出結(jié)果如以下圖顯示出了效力器機器上的用戶名等敏感信息:命令執(zhí)行/代碼注入破綻分類引見代碼直接注入例如1(PHP)代碼注入執(zhí)行破綻例如,如效力器端用php言語實現(xiàn),并且有個eval.php文件的內(nèi)容如以下圖:命令執(zhí)行/代碼注入破綻分類引見代碼直接注入例如1假設(shè)用戶輸入精心組裝過的數(shù)據(jù),如:/cmdcode/code/eval.p

5、hp?arg=phpinfo()那么將執(zhí)行php代碼命令phpinfo(),結(jié)果如以下圖:命令執(zhí)行/代碼注入破綻分類引見代碼直接注入例如2(Strust2)代碼注入執(zhí)行破綻例如,如之前紅極一時的Strust2破綻,也是由于未對用戶可控參數(shù)進展有效的過濾引發(fā)的代碼注入執(zhí)行破綻,如用戶輸入:XXX/save.action?redirect:$%23a%3d(new java.lang.ProcessBuilder(new java.lang.Stringipconfig,/all).start(),%23b%3d%23a.getInputStream(),%23c%3dnew java.io.In

6、putStreamReader(%23b),%23d%3dnew java.io.BufferedReader(%23c),%23e%3dnew char50000,%23d.read(%23e),%23matt%3d%23context.get(com.opensymphony.xwork2.dispatcher.HttpServletResponse),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()命令執(zhí)行/代碼注入破綻分類引見代碼直接注入例如2命令執(zhí)行/代碼

7、注入破綻分類引見命令或代碼本地 /遠(yuǎn)程文件包含執(zhí)行破綻概述命令本地/遠(yuǎn)程包含破綻:運用程序直接包含或執(zhí)行了用戶可控的上傳腳本文件或遠(yuǎn)程文件(URL援用文件),就會觸發(fā)此破綻。代碼本地/遠(yuǎn)程包含破綻:運用程序直接包含了用戶可控的上傳文件或遠(yuǎn)程文件(URL援用文件),就會觸發(fā)此破綻,比如php/asp/aspx的include,以及php的include_once、require_once、require等,有些遠(yuǎn)程文件包含的有些限制條件,比如PHP的就必需翻開配置選項:allow_url_fopen,才會勝利。命令執(zhí)行/代碼注入破綻分類引見命令本地文件包含例如1(360平安衛(wèi)士) 360平安衛(wèi)士

8、有個“360電腦專家功能,可以聊天,在聊天窗口中輸入如以下圖內(nèi)容,就會觸發(fā)本地包含破綻。這個破綻的原理是360會將聊天內(nèi)容寫入到文件中去,然后顯示的時候去讀取文件,執(zhí)行了包含的命令。命令執(zhí)行/代碼注入破綻分類引見命令本地文件包含例如1就會看到這奇觀的一幕,彈出命令行了.命令執(zhí)行/代碼注入破綻分類引見命令本地文件包含例如2(php) 假設(shè)效力端代碼文件中有個php文件的內(nèi)容包含有類似代碼【require($_GETp);】的片段,就會引發(fā)本地包含的破綻。其中參數(shù)p為用戶可控的,假設(shè)p指定為一個用戶上傳的文件cmd.txt,并且這個txt的內(nèi)容為 ,就會觸發(fā)此破綻命令執(zhí)行/代碼注入破綻分類引見命令

9、本地文件包含例如2命令執(zhí)行/代碼注入破綻分類引見代碼本地文件包含例如1(php) 假設(shè)效力端代碼文件中有個php文件的內(nèi)容包含有類似代碼【require($_GETp);】的片段,就會引發(fā)本地包含的破綻。其中參數(shù)p為用戶可控的,假設(shè)p指定為一個用戶上傳的文件code.txt,并且這個txt的內(nèi)容為 ,就會觸發(fā)此破綻命令執(zhí)行/代碼注入破綻分類引見代碼本地文件包含例如1命令執(zhí)行/代碼注入破綻分類引見命令或代碼反序列化執(zhí)行破綻概述有些動態(tài)腳本言語,如php支持實例對象的序列化傳輸,然后效力端將實例對象反序列化出來并執(zhí)行解析后實例的構(gòu)造函數(shù)、析構(gòu)函數(shù)或_wakeup()函數(shù),假設(shè)這些函數(shù)利用了用戶可控

10、的參數(shù),那么會觸發(fā)命令/代碼注入執(zhí)行破綻,原理和之前的直接注入一樣。命令執(zhí)行/代碼注入破綻分類引見反序列化破綻例如1假設(shè)效力端代碼文件中有個php文件的內(nèi)容包含有類似如以下圖代碼片段,就存在反序列化的破綻。命令執(zhí)行/代碼注入破綻分類引見反序列化破綻例如1訪問serialize.php可以獲取$class_ser的值為:O:1:a:1:s:4:test;s:19:;命令執(zhí)行/代碼注入破綻分類引見反序列化破綻例如1假設(shè)用戶提交如以下圖的序列化后的$class_ser的值給參數(shù)test,就會執(zhí)行phpinfo()代碼。命令執(zhí)行/代碼注入破綻分類引見命令或代碼動態(tài)變量/函數(shù)執(zhí)行破綻概述有些動態(tài)腳本言語

11、,如php,支持變量或函數(shù)的動態(tài)定義,即運轉(zhuǎn)時可經(jīng)過參數(shù)名來動態(tài)組裝變量、變量值或函數(shù)。假設(shè)代碼中包含有類似如圖中類似代碼片段,就會存在動態(tài)變量/函數(shù)的執(zhí)行破綻。命令執(zhí)行/代碼注入破綻分類引見命令或代碼動態(tài)變量/函數(shù)執(zhí)行破綻例如當(dāng)用戶在閱讀器中輸入:/dynamic.php?dyn_func=system&argument=ipconfig,就相當(dāng)于執(zhí)行了系統(tǒng)命令ipconfig,如以下圖命令執(zhí)行/代碼注入破綻發(fā)掘方法命令執(zhí)行/代碼注入破綻發(fā)掘方法發(fā)掘方法從破綻的本質(zhì)以及前面的例如中可以明顯的看出,輸入點是一切注入的根源,發(fā)掘破綻就是尋覓這些輸入點,尋覓方法主要有: - 白盒審計 - 黑盒審計

12、 - 灰盒審計 命令執(zhí)行/代碼注入破綻發(fā)掘方法白盒審計概述白盒審計,就是指手上曾經(jīng)有份完好的源碼,然后分析源碼,選擇一切用戶可控的輸入點,然后分析這些輸入點能否未過濾或過濾不嚴(yán)厲,這些點是最易引發(fā)注入破綻,比如常見的XSS、SQL、命令以及代碼注入破綻等。白盒審計方法普通采用人工以及工具相結(jié)合的方法。純工具的相對一些有些邏輯跳轉(zhuǎn)的沒法發(fā)現(xiàn),純?nèi)斯さ男侍停踩菀酌撀G闆r是運用工具找到一切的輸入點,然后人工依次跟蹤變量的處置流程。命令執(zhí)行/代碼注入破綻發(fā)掘方法白盒審計工具Fortify SCA Fortify SCA 是一個靜態(tài)的、白盒的軟件源代碼平安測試工具。它經(jīng)過內(nèi)置的五大主要分析引

13、擎:數(shù)據(jù)流、語義、構(gòu)造、控制流、配置流等對運用軟件的源代碼進展靜態(tài)的分析,分析的過程中與它特有的軟件平安破綻規(guī)那么集進展全面地匹配、查找,從而將源代碼中存在的平安破綻掃描出來,并給予整理報告。掃描的結(jié)果中不但包括詳細(xì)的平安破綻的信息,還會有相關(guān)的平安知識的闡明,以及修復(fù)意見的提供。命令執(zhí)行/代碼注入破綻發(fā)掘方法白盒審計工具Fortify SCA 命令執(zhí)行/代碼注入破綻發(fā)掘方法白盒審計工具SeaySeay源代碼審計系統(tǒng),Seay源代碼審計系統(tǒng)目前只支持PHP,功能包括不斷在更新: - 高準(zhǔn)確度自動白盒審計 ; - mysql數(shù)據(jù)庫管理 ; - 代碼高亮; - 黑盒敏感信息泄露一鍵審計 ; - 函

14、數(shù)查詢 ; - 正那么調(diào)試; - 代碼調(diào)試 ; - 多種字符編碼轉(zhuǎn)換; - 函數(shù)/變量定位; - 暫時記錄可保管; - 審計報告; - 編輯保管文件; - 自定義規(guī)那么 ; - 自動晉級檢測; - 自定義編輯器 ; - POST數(shù)據(jù)提交;命令執(zhí)行/代碼注入破綻發(fā)掘方法白盒審計工具Seasy命令執(zhí)行/代碼注入破綻發(fā)掘方法黑盒審計概述黑盒審計,就是指無法獲取到源代碼,只能經(jīng)過現(xiàn)有的WEB運用,進展摸黑測試,測試一切的輸入點。通用的方法是運用掃描工具掃描WEB的目錄列表以及一切參數(shù)列表,并分析掃描報告,查看能否有可疑的輸入點。黑盒審計工具常用的有wvs、appscan、nessus、w3af等等,有

15、很多,就不一一列舉了,下面就簡單的引見下這幾個軟件。命令執(zhí)行/代碼注入破綻發(fā)掘方法黑盒審計工具WVS(Web Vulnerability Scanner)是一個自動化的Web運用程序平安測試工具,它可以掃描任何可經(jīng)過Web閱讀器訪問的和遵照HTTP/HTTPS規(guī)那么的Web站點和Web運用程序。適用于任何中小型和大型企業(yè)的內(nèi)聯(lián)網(wǎng)、外延網(wǎng)和面向客戶、雇員、廠商和其它人員的Web網(wǎng)站。命令執(zhí)行/代碼注入破綻發(fā)掘方法黑盒審計工具WVS命令執(zhí)行/代碼注入破綻發(fā)掘方法灰盒審計概述灰盒審計,就是指結(jié)合前面引見的兩種方法白盒和黑盒審計,邊黑盒掃描,邊白盒審計,這樣就能快速的定位到哪個輸入點可疑,并且經(jīng)過白盒審計,就可迅速的找到并編寫POC代碼。灰盒審計普通依賴閱歷,閱歷越豐富,普通就能很快的定位到問題所在點以及問題重現(xiàn),快速的編寫出exp代碼。命令執(zhí)行/代碼注入破綻攻擊防御命令執(zhí)行/代碼注入攻擊防御灰盒審計概述基于前面的分析,注入破綻的根源在于過分的置信了每一位用戶,總假設(shè)用戶的輸入是正常

溫馨提示

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

評論

0/150

提交評論