命令執行代碼注入漏洞_第1頁
命令執行代碼注入漏洞_第2頁
命令執行代碼注入漏洞_第3頁
命令執行代碼注入漏洞_第4頁
命令執行代碼注入漏洞_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

命令執行/代碼注入漏洞王朋濤深信服北京安全團隊命令執行/代碼注入漏洞概述命令執行/代碼注入漏洞分類介紹命令執行/代碼注入漏洞挖掘方法命令執行/代碼注入漏洞攻擊防御總結培訓提綱命令執行/代碼注入漏洞概述命令執行/代碼注入漏洞概述命令執行/代碼注入漏洞的出現應用程序直接/間接使用了動態執行命令的危險函數,并且這個函數的運行參數是用戶可控的。如php可動態執行系統命令的函數:system、exec、passthru等等,php可動態執行php代碼的有eval;jsp可動態執行系統命令的函數有:Runtime.getRuntime().exec(...);asp/aspx可動態執行asp/aspx代碼的有:eval等等。命令執行/代碼注入漏洞的本質程序設計違背了“數據與代碼分離”的原則。命令執行/代碼注入漏洞分類介紹命令執行/代碼注入漏洞分類介紹命令或代碼直接注入執行漏洞命令或代碼本地包含執行漏洞命令或代碼遠程包含執行漏洞命令或代碼反序列化執行漏洞命令或代碼動態變量執行漏洞命令或代碼動態函數執行漏洞命令執行/代碼注入漏洞分類介紹命令或代碼直接注入執行漏洞概述命令注入:應用程序直接使用了危險的可執行系統命令的函數,比如php的system、exec函數等,并且這些函數的運行參數是用戶可控的,若過濾不嚴格,就會增大命令執行漏洞的概率。命令或代碼本地包含執行漏洞。代碼注入:應用程序直接使用了危險的代碼執行函數,如php/asp/aspx的eval函數等,并且這些函數的運行參數是用戶可控的,若過濾不嚴格,就會增大命令執行漏洞的概率。命令執行/代碼注入漏洞分類介紹命令直接注入示例1(CGI)系統命令注入執行漏洞示例,就比如去年很火的Bash漏洞,就屬于這類漏洞,用戶可直接更改HTTP頭User-Agent的值,就可引發命令注入,如下圖(命令執行結果將從服務器上下載一個php文件到本地):命令執行/代碼注入漏洞分類介紹命令直接注入示例2(PHP)系統命令注入執行漏洞示例,如服務器端用php語言實現,并且有個system.php文件的內容含有如下片段eval(“$_GET[arg];”);,或類似的片段,就會存在此漏洞。如下圖:命令執行/代碼注入漏洞分類介紹命令直接注入示例2若用戶輸入的參數arg的值為精心組裝過的,如:http://[IP]/test.php?arg=cat/etc/passwd最后執行的命令就變成了system("cat/etc/passwd"),輸出結果如下圖(顯示出了服務器機器上的用戶名等敏感信息):命令執行/代代碼注入漏洞洞分類介紹代碼直接注入入示例1(PHP)代代碼注入執行行漏洞示例,,如服務器端端用php語語言實現,并并且有個eval.php文件件的內容如下下圖:命令執行/代代碼注入漏洞洞分類介紹代碼直接注入入示例1若用戶輸入精精心組裝過的的數據,如:cmdcode/code/eval.php?arg=phpinfo()則將執行php代碼命令令phpinfo(),結果如下圖圖:命令執行/代代碼注入漏洞洞分類介紹代碼直接注入入示例2(Strust2)代碼碼注入執行漏漏洞示例,如如之前紅極一一時的Strust2漏漏洞,也是由由于未對用戶戶可控參數進進行有效的過過濾引發的代代碼注入執行行漏洞,如用用戶輸入:http://XXX/save.action?redirect:${%23a%3d(newjava.lang.ProcessBuilder(newjava.lang.String[]{'ipconfig','/all'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnewjava.io.InputStreamReader(%23b),%23d%3dnewjava.io.BufferedReader(%23c),%23e%3dnewchar[50000],%23d.read(%23e),%23matt%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}命令執行/代代碼注入漏洞洞分類介紹代碼直接注入入示例2命令執行/代代碼注入漏洞洞分類介紹命令或代碼本本地/遠程文件包含含執行漏洞概概述命令本地/遠遠程包含漏洞洞:應用程序直直接包含或執執行了用戶可可控的上傳腳腳本文件或遠遠程文件(URL引用文文件),就會會觸發此漏洞洞。代碼本地/遠遠程包含漏洞洞:應用程序直接接包含了用戶戶可控的上傳傳文件或遠程程文件(URL引用文件件),就會觸觸發此漏洞,,比如php/asp/aspx的的include,以及及php的include_once、require_once、、require等,有有些遠程文件件包含的有些些限制條件,,比如PHP的就必須打打開配置選項項:allow_url_fopen,才會成成功。命令執執行/代碼碼注入入漏洞洞分類類介紹紹命令本本地文文件包包含示示例1(360安安全衛衛士)360安全全衛士士有個個“360電腦腦專家家”功功能,,可以以聊天天,在在聊天天窗口口中輸輸入如如下圖圖內容容,就就會觸觸發本本地包包含漏漏洞。。這個個漏洞洞的原原理是是360會會將聊聊天內內容寫寫入到到文件件中去去,然然后顯顯示的的時候候去讀讀取文文件,,執行行了包包含的的命令令。命令執執行/代碼碼注入入漏洞洞分類類介紹紹命令本本地文文件包包含示示例1就會看看到這這奇跡跡的一一幕,,彈出出命令令行了了.....命令執執行/代碼碼注入入漏洞洞分類類介紹紹命令本本地文文件包包含示示例2(php)若若服務務端代代碼文文件中中有個個php文文件的的內容容包含含有類類似代代碼【【require($_GET['p']);】】的片片段,,就會會引發發本地地包含含的漏漏洞。。其中中參數數p為為用戶戶可控控的,,若p指定定為一一個用用戶上上傳的的文件件cmd.txt,,并且且這個個txt的的內容容為<?phppassthru($_GET["cmd"]);?>,,就就會觸觸發此此漏洞洞命令執執行/代碼碼注入入漏洞洞分類類介紹紹命令本本地文文件包包含示示例2命令執執行/代碼碼注入入漏洞洞分類類介紹紹代碼本本地文文件包包含示示例1(php)若若服務務端代代碼文文件中中有個個php文文件的的內容容包含含有類類似代代碼【【require($_GET['p']);】的的片段段,就就會引引發本本地包包含的的漏洞洞。其其中參參數p為用用戶可可控的的,若若p指指定為為一個個用戶戶上傳傳的文文件code.txt,,并且且這個個txt的的內容容為<?phpeval("$_GET[code];");?>,,就就會觸觸發此此漏洞洞命令執執行/代碼碼注入入漏洞洞分類類介紹紹代碼本本地文文件包包含示示例1命令執執行/代碼碼注入入漏洞洞分類類介紹紹命令或或代碼碼反序序列化化執行行漏洞洞概述述有些動動態腳腳本語語言,,如php支持持實例對對象的的序列列化傳傳輸,然后后服務務端將將實例例對象象反序序列化化出來來并執執行解解析后后實例例的構構造函函數、、析構構函數數或__wakeup()函函數,,若這這些函函數利利用了了用戶戶可控控的參參數,,則會會觸發發命令令/代代碼注注入執執行漏漏洞,,原理理和之之前的的直接接注入入一樣樣。命令執執行/代碼碼注入入漏洞洞分類類介紹紹反序列列化漏漏洞示示例1若服務務端代代碼文文件中中有個個php文文件的的內容容包含含有類類似如如下圖圖代碼碼片段段,就就存在在反序序列化化的漏漏洞。。命令執執行/代碼碼注入入漏洞洞分類類介紹紹反序列列化漏漏洞示示例1訪問serialize.php可以獲獲取$class_ser的值為為:O:1:"a":1:{s:4:"test";s:19:"<?phpphpinfo();?>";}命令執執行/代碼碼注入入漏洞洞分類類介紹紹反序列列化漏漏洞示示例1若用命令執執行/代碼碼注入入漏洞洞分類類介紹紹命令或或代碼碼動態態變量量/函數執執行漏漏洞概概述有些動動態腳腳本語語言,,如php,支支持變變量或或函數數的動動態定定義,,即運運行時時可通通過參參數名名來動動態組組裝變變量、、變量量值或或函數數。若若代碼碼中包包含有有類似似如圖圖中類類似代代碼片片段,,就會會存在在動態態變量量/函函數的的執行行漏洞洞。命令執執行/代碼碼注入入漏洞洞分類類介紹紹命令或或代碼碼動態態變量量/函數執執行漏漏洞示示例當用戶戶在瀏瀏覽器器中輸輸入:dynamic.php?dyn_func=system&argument=ipconfig,就就相當于于執行了了系統命命令ipconfig,如下下圖命令執行行/代碼碼注入漏漏洞挖掘掘方法命令執行行/代碼碼注入漏漏洞挖掘掘方法挖掘方法法從漏洞的的本質以以及前面面的示例例中可以以明顯的的看出,,輸入點點是一切切注入的的根源,,挖掘漏漏洞就是是尋找這這些輸入入點,尋尋找方法法主要有有:-白盒審計計-黑盒審計計-灰盒審計計命令執行行/代碼碼注入漏漏洞挖掘掘方法白盒審計計概述白盒審計計,就是是指手上上已經有有份完整整的源碼碼,然后后分析源源碼,選選擇一切切用戶可可控的輸輸入點,,然后分分析這些些輸入點點是否未未過濾或或過濾不不嚴格,,這些點點是最易易引發注注入漏洞洞,比如如常見的的XSS、SQL、命命令以及及代碼注注入漏洞洞等。白盒審計計方法一一般采用用人工以以及工具具相結合合的方法法。純工工具的相相對一些些有些邏邏輯跳轉轉的沒法法發現,,純人工工的效率率太低,,也容易易遺漏,,正常情情況是使使用工具具找到所所有的輸輸入點,,然后人人工依次次跟蹤變變量的處處理流程程。命令執行行/代碼碼注入漏漏洞挖掘掘方法白盒審計計工具FortifySCAFortifySCA是是一個靜靜態的、、白盒的的軟件源源代碼安安全測試試工具。。它通過過內置的的五大主主要分析析引擎::數據流流、語義義、結構構、控制制流、配配置流等等對應用用軟件的的源代碼碼進行靜靜態的分分析,分分析的過過程中與與它特有有的軟件件安全漏漏洞規則則集進行行全面地地匹配、、查找,,從而將將源代碼碼中存在在的安全全漏洞掃掃描出來來,并給給予整理理報告。。掃描的的結果中中不但包包括詳細細的安全全漏洞的的信息,,還會有有相關的的安全知知識的說說明,以以及修復復意見的的提供。。命令執行行/代碼碼注入漏漏洞挖掘掘方法白盒審計計工具FortifySCA命令執行行/代碼碼注入漏漏洞挖掘掘方法白盒審計計工具SeaySeay源代碼碼審計系系統,Seay源代碼碼審計系系統目前前只支持持PHP,功能能包括((一直在在更新)):-高精確度度自動白白盒審計計;-mysql數據庫庫管理;;-代碼高亮亮;-黑盒敏感感信息泄泄露一鍵鍵審計;;-函數查詢詢;-正則調試試;-代碼調試試;-多種字符符編碼轉轉換;-函數/變變量定位位;-臨時記錄錄(可保保存);;-審計報告告;-編輯保存存文件;;-自定義規規則;;-自動升級級檢測;;-自定義編編輯器;;-POST數據提交交;命令執行行/代碼碼注入漏漏洞挖掘掘方法白盒審計計工具Seasy命令執行行/代碼碼注入漏漏洞挖掘掘方法黑盒審計計概述黑盒審計計,就是是指無法法獲取到到源代碼碼,只能能通過現現有的WEB應應用,進進行摸黑黑測試,,測試所所有的輸輸入點。。通用的的方法是是使用掃掃描工具具掃描WEB的的目錄列列表以及及所有參參數列表表,并分分析掃描描報告,,查看是是否有可可疑的輸輸入點。。黑盒審計計工具常常用的有有wvs、appscan、、nessus、w3af等等等,有有很多,,就不一一一列舉舉了,下下面就簡簡單的介介紹下這這幾個軟軟件。命令執行行/代碼碼注入漏漏洞挖掘掘方法黑盒審計計工具WVS(WebVulnerabilityScanner)是是一個自自動化的的Web應用程程序安全全測試工工具,它它可以掃掃描任何何可通過過Web瀏覽器器訪問的的和遵循循HTTP/HTTPS規則則的Web站點點和Web應用用程序。。適用于于任何中中小型和和大型企企業的內內聯網、、外延網網和面向向客戶、、雇員、、廠商和和其它人人員的Web網網站。命令執行行/代碼碼注入漏漏洞挖掘掘方法黑盒審計計工具WVS命令執行行/代碼碼注入漏漏洞挖掘掘方法灰盒審計計概述灰盒審計計,就是是指結合合前面介介紹的兩兩種方法法(白盒盒和黑盒盒審計)),邊黑黑盒掃描描,邊白白盒審計計,這樣樣就能快快速的定定位到哪哪個輸入入點可疑疑,并且且通過白白盒審計計,就可可迅速的的找到并并編寫POC代代碼。灰灰盒審計計一般依依賴經驗驗,經驗驗越豐富富,一般般就能很很快的定定位到問問題所在在點以及及問題重重現,快快速的編編寫出exp代代碼。命令執行行/代碼碼注入漏漏洞攻擊擊防御命令執行行/代碼碼注入攻攻擊防御御灰盒審計計概述基于前面面的分析析,注入入漏洞的的根源在在于過分分的相信信了每一一位用戶戶,總假假設用戶戶的輸入入是正常常的、無無害的,,而沒有有進行嚴嚴格的審審查判斷斷以及過過濾。由由于每一一位開發發者的經經驗有限限,這些些問題總總會不知知不覺中中就被寫寫入到了了代碼之之中,給給惡意瀏瀏覽者有有可乘之之機。防御方法法一般是是加強開開發者的的安全意意識,以以及規范范開發流流程和代代碼質量量的嚴格格審核。。如果是是采用第第三方的的應用時時,在代代碼質量量是無法法控制的的情況下下,就可可以采用用部署入入侵檢測測防御系系統或防防火墻進進行實時時防護。。總結介紹了命命令執行行/代碼碼注入漏漏洞的本本質介紹了命命令執行行/代碼碼注入漏漏洞分類類介紹了命命令執行行/代碼碼注入漏漏洞挖掘掘方法介紹了命命令執行行/代碼碼注入漏漏洞攻擊擊防御措措施總結9、靜夜四無無鄰,荒居居舊業貧。。。1月-231月-23Sunday,January1,202310、雨中黃葉葉樹,燈下下白頭人。。。13:05:1313:05:1313:051/1/20231:05:13PM11、以以我我獨獨沈沈久久,,愧愧君君相相見見頻頻。。。。1月月-2313:05:1313:05Jan-2301-Jan-2312、故人江江海別,,幾度隔隔山川。。。13:05:1313:05:1313:05Sunday,January1,202313、乍乍見見翻翻疑疑夢夢,,相相悲悲各各問問年年。。。。1月月-231月月-2313:05:1313:05:13January1,202314、他他鄉鄉生生白白發發,,舊舊國國見見青青山山。。。。01一一月月20231:05:13下下午午13:05:131月月-2315、比不了得就就不比,得不不到的就不要要。。。一月231:05下下午1月-2313:05January1,202316、行行動動出出成成果果,,工工作作出出財財富富。。。。2023/1/113:05:1313:05:1301January202317、做前前,能能夠環環視四四周;;做時時,你你只能能或者者最好好沿著著以腳腳為起起點的的射線線向前前。。。1:05:13下下午1:05下下午午13:05:131月-239、沒有失失敗,只只有暫時時停止成成功!。。1月-231月-23Sunday,January1,202310、很多事情情努力了未未必有結果果,但是不不努力卻什什么改變也也沒有。。。13:05:1313:05:1313:051/1/20231:05:13PM11、成功功就是是日復復一日日那一一點點點小小小努力力的積積累。。。1月-2313:05:1313:05Jan-2301-Jan-2312、世間成事,,不求其絕對對圓滿,留一一份不足,可可得無限完美美。。13:05:1313:05:1313:05Sunday,January1,202313、不知香積積寺,數里里入云峰。。。1月月-231月月-2313:05:1313:05:13January1,202314、意志志堅強強的人人能把把世界界放在在手中中像泥泥塊一一樣任任意揉揉捏。。01一一月月20231:05:13下下午13:05:131月-2315、楚楚塞塞三三湘湘接接,,荊荊門門九九派派通通。。。。。。一月月231:05下下午午1月月-2313:05January1,202316、少少年年十十五五二二十十時時,,步步行行奪奪得得胡胡馬馬騎騎。。。。2023/1/113:05:1313:05:1301January202317

溫馨提示

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

評論

0/150

提交評論