![WEB代碼審計與滲透測試.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/7/ea83567f-f325-4e5f-95bb-8d2b863e9374/ea83567f-f325-4e5f-95bb-8d2b863e93741.gif)
![WEB代碼審計與滲透測試.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/7/ea83567f-f325-4e5f-95bb-8d2b863e9374/ea83567f-f325-4e5f-95bb-8d2b863e93742.gif)
![WEB代碼審計與滲透測試.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/7/ea83567f-f325-4e5f-95bb-8d2b863e9374/ea83567f-f325-4e5f-95bb-8d2b863e93743.gif)
![WEB代碼審計與滲透測試.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/7/ea83567f-f325-4e5f-95bb-8d2b863e9374/ea83567f-f325-4e5f-95bb-8d2b863e93744.gif)
![WEB代碼審計與滲透測試.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/7/ea83567f-f325-4e5f-95bb-8d2b863e9374/ea83567f-f325-4e5f-95bb-8d2b863e93745.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、WEB代碼審計與滲透測試, ,WEB應(yīng)用程序代碼審計,程序的兩大根本:變量與函數(shù) 漏洞現(xiàn)成的條件: A、可以控制的變量 【一切輸入都是有害的 】 B、變量到達有利用價值的函數(shù)危險函數(shù) 【一切進入函數(shù)的變量是有害的】 漏洞的利用效果取決于最終函數(shù)的功能 變量進入什么樣的函數(shù)就導(dǎo)致什么要的效果,PHP應(yīng)用程序代碼審計,為什么只是PHP? A、跨平臺、應(yīng)用廣泛、復(fù)雜 B、變量處理靈活如變量覆蓋、全局變量等 C、函數(shù)庫巨大 導(dǎo)致漏洞類型多,既有通用的又有特有的 E、代碼審計的思路是可以通用的,變量,預(yù)定義變量常規(guī)外部提交的變量 GPC $_ENV/SERVER/SESSION $HTTP_RAW_PO
2、ST_DATA等 register_globals = on 未初始化的變量 PHP 4.20 默認為off 變量覆蓋未初始化及覆蓋前定義的變量 如:extract() 、遍歷初始化變量、parse_str()等 變量的傳遞與存儲中轉(zhuǎn)的變量 存儲于數(shù)據(jù)庫、文件如配置、緩存文件等,危險函數(shù),文件包含包含漏洞 代碼執(zhí)行執(zhí)行任意代碼漏洞 命令執(zhí)行執(zhí)行任意命令漏洞 文件系統(tǒng)操作文件(目錄)讀寫等漏洞 數(shù)據(jù)庫操作SQL注射漏洞 數(shù)據(jù)顯示 XSS等客服端漏洞 ,什么樣的函數(shù)導(dǎo)致什么樣的漏洞!,更多的變量處理與危險函數(shù),高級PHP應(yīng)用程序漏洞審核技術(shù) ,代碼審計的本質(zhì),找漏洞=找對應(yīng)變量與函數(shù) 變量跟蹤的過
3、程 通過變量找函數(shù)正向跟蹤變量 $id=$_GETid$sid=$id函數(shù)($sid) 通過函數(shù)找變量逆向跟蹤變量 函數(shù)($sid) $sid=$id $id=$_GETid,變量的傳遞與二次漏洞,變量存儲、提取、傳遞是一個復(fù)雜的立體的過程 過程中經(jīng)過多個不一樣的函數(shù)的處理后繼續(xù)傳遞,最終達到漏洞函數(shù) 傳遞的過程中任意環(huán)節(jié)可控就可能導(dǎo)致漏洞 中間函數(shù)處理的過程誕生新的變量,新的變量達到新的漏洞函數(shù)誕生新的漏洞二次漏洞,二次漏洞,什么是二次漏洞? 2006年提出的一個概念 主導(dǎo)思想:通過一個現(xiàn)有漏洞,創(chuàng)造新的漏洞使得漏洞利用最大化 一個demo, 一個典型的文件刪除漏洞,注意:include與r
4、equire的區(qū)別,二次漏洞,又一個demo,一個注射漏洞 $sql= select id,filepath,user,name from attachment where fileid=$_GETid”; $result = mysql_db_query($dbname, $sql);$file=mysql_fetch_array($result);,然而: include($filefilepath); 一個貌似不可以直接控制的新變量$filefilepath進入了危險函數(shù)include(),?id=1 union select 1, 當然我們沒有那個注射漏洞,只要我們對數(shù)據(jù)庫有控制權(quán)限一
5、樣可以通過update、insert控制$filefilepath。,一個實例:phplist-2.10.4old ver遠程包含漏洞,/phplist-2.10.4public_htmllistsadminindex.php if (!ini_get(register_globals) | ini_get(register_globals) = off) . /經(jīng)典的變量覆蓋漏洞模式 foreach ($_REQUEST as $key = $val) $key = $val; . /覆蓋$_SERVER“ConfigFile”,經(jīng)過is_file()判斷后進入include() if (i
6、sset($_SERVERConfigFile) ,但是is_file()是不支持遠程文件的,所以到目前代碼只是一個本地包含漏洞,phplist-2.10.4public_htmllistsadmincommonlibpagesimportcsv.php . if (!isset($GLOBALSassign_invalid_default) $GLOBALSassign_invalid_default = $GLOBALSI18N-get(Invalid Email). number; . register_shutdown_function(my_shutdown); require_on
7、ce $GLOBALScoderoot . structure.php;,單獨看上面的代碼是沒有辦法提交$GLOBALS變量的!但是我們結(jié)合/phplist-2.10.4public_htmllistsadminindex.php里的變量覆蓋漏洞,我們就可以提交$GLOBALS變量了,那么我們就可以控制$GLOBALS“coderoot” 實現(xiàn)遠程包含 Exp: /admin/index.php?_SERVERConfigFile=./commonlib/pages/importcsv.php $post = xml_unserialize(file_get_contents(php:/inp
8、ut);數(shù)據(jù)流不受魔術(shù)引號限制 通過$configfile = preg_replace(“/define(UC_API,s*.*?);/i”, “define(UC_API, $UC_API);”, $configfile); 閉合define(UC_API, 來注射我們的webshell代碼,二次漏洞的啟示,漏洞的類型是可以轉(zhuǎn)換的:最終的目的是攻擊效果最大化! 一切進入函數(shù)的變量是有害的:變量在傳遞過程任意個環(huán)節(jié)可控就可能導(dǎo)致漏洞! 變量傳遞的途徑是多樣的:我們的攻擊思路多元化! 如對于dz,去尋找可以找到uc_key的途徑:sql注射、文件讀取config.inc.php里存有uc_ke
9、y、控制mysql的管理權(quán)限phpmyadmin等等,二次漏洞的其他應(yīng)用,應(yīng)用級別的“rootkit”,其他的因素與代碼審計,php版本與代碼審計變量與函數(shù) php.ini默認設(shè)置問題 php本身函數(shù)的漏洞php缺少自動升級的機制 系統(tǒng)特性與代碼審計 包括OS: 主要是文件操作 web服務(wù)器: 主要文件解析類型 系統(tǒng)特性與web安全 數(shù)據(jù)庫類型與代碼審計數(shù)據(jù)庫注射與利用,滲透測試中的代碼審計,代碼審計的目的目的決定行為 甲方的代碼審計: 目的:防御 要求:找到更多的漏洞,并且給出安全補丁建議等。并且對應(yīng)用程序平臺無特別要求。 乙方的代碼審計: 目的:滲透也就是進攻 要求:找到一個可用的漏洞就可
10、以,但是要求快速、利用效果最大化等。并且要求在滲透測試目標的平臺上可以利用。,滲透測試中的代碼審計,代碼審計前的準備 A.得到代碼 a.對于開源的應(yīng)用程序:得到程序的版本信息,越詳細越好。 *具體應(yīng)用程序版本掃描 b.對于不開源的應(yīng)用程序: *通過黑盒掃描得到備用文件 *通過黑盒掃描利用sql注射暴代碼loadfile() *通過黑盒掃描利用容易文件下載漏洞 *上一次滲透測試打包下載的代碼 B.得到平臺信息 php版本及php.ini一些基本設(shè)置、OS信息、Web服務(wù)信息、數(shù)據(jù)庫應(yīng)用,滲透測試中的代碼審計,快速代碼審計: A.補丁對比技術(shù) B.業(yè)務(wù)功能與漏洞 C.相似性漏洞挖掘 D.基于白盒的
11、fuzz E.常用變量與函數(shù) F.高級的代碼審計,A 補丁對比技術(shù),二進制補丁對比技術(shù)已經(jīng)非常成熟開始于2004年 ,也誕生了反二進制對比的技術(shù)。 PHP應(yīng)用程序補丁對比技術(shù) *基于源代碼,對比起來更加直觀明了 *目前還沒有對應(yīng)的反對比機制 *對比工具: 系統(tǒng)命令:fc、diff等 專業(yè)工具:Beyond Compare、UltraCompare等 *常見的安全補丁方式: 變量初始化:$str=;、$arr=array();等 變量過濾: intval/int()、addslashes()、正則等 *對比的版本選擇:選取臨近的版本避免一些非安全補丁的干擾,一個實例,B 業(yè)務(wù)功能與漏洞,實現(xiàn)業(yè)務(wù)
12、功能的同時引入安全風(fēng)險。如: 上傳功能上傳漏洞 數(shù)據(jù)存儲與查詢sql注射漏洞 后臺或者api接口安全認證繞過 數(shù)據(jù)庫備用導(dǎo)出webshell 新的功能必定帶來新的安全隱患。 功能越強大說明漏洞幾率越大。 我們在審計代碼的同時應(yīng)該熟悉應(yīng)用程序的業(yè)務(wù)功能。,C 相似性漏洞挖掘,天下武學(xué)同出少林天大代碼一把抄 最經(jīng)典的故事屬于asp:動網(wǎng)的上傳漏洞 每個程序員都有自己的代碼風(fēng)格習(xí)慣 不好的風(fēng)格習(xí)慣,可能代碼致命的安全漏洞,而且習(xí)慣很難改變! 相同的功能帶來同樣的漏洞 如后臺的功能和api接口實現(xiàn)相同的功能 尋找相似性漏洞 *通過補丁對比技術(shù) *通過漏洞分析、總結(jié)漏洞類型,D 基于白盒的fuzz,由于
13、變量在傳遞的過程里千變?nèi)f化,跟蹤來很費事費力,為了快速找到漏洞 我們可以在白盒的基礎(chǔ)上通用一些fuzz的方法,開始找到漏洞。,一、變量的存儲 1、對于文本文件:如配置文件、緩存文件、文本數(shù)據(jù)庫文件。如: $headersX-Forwarded-For = Test31425926; 然后通過Findstr、grep等搜索特征字符Test31425926 D:Findstr /S /I /N /d:D:phprootbmb2007bmb Test31425926 *.phpD:phprootbmb2007bmb:datafileguest.php:2:?php /|娓稿|1163859032|Test31425926?|f|0|Firefox |Windows XP|t| 當然也用于其他get、post的變量、甚至是環(huán)境變量,比如注射用戶名、發(fā)帖的標題內(nèi)容設(shè)置為一個特征字符 2、對于數(shù)據(jù)庫存儲查詢 可以讓數(shù)據(jù)庫出錯的字符就行 比如,D 基于白盒的fuzz,二、全局變量 主要是對于設(shè)置了register_globals = on 的情況下,在inlculdes的文件里設(shè)定的配置變量沒有初始化的問題: 那么不是所有的文件都這樣的問題,我們可以先通過白盒找到這些可能出現(xiàn)問題的變量名,然后可以寫個fuzz的腳本,列表程序目錄一個一個提交探測,E.常用變量與函數(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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘教版地理八年級下冊7.4《長江三角洲區(qū)域的內(nèi)外聯(lián)系》(第2課時)聽課評課記錄
- 北師大版道德與法治七年級下冊9.1《我們身邊的法律》聽課評課記錄
- 湘教版數(shù)學(xué)九年級下冊聽評課記錄:2.3 垂徑定理
- 小學(xué)二年級上冊數(shù)學(xué)口算練習(xí)題人教版新課標
- 小學(xué)二年級人教版口算及豎式計算寒假練習(xí)A4排版
- 小學(xué)二年級加減乘法口算練習(xí)題
- 蘇教版小學(xué)二年級數(shù)學(xué)上冊口算題卡
- 超市連鎖加盟合同范本
- 儲藏室租賃合同范本
- 汽車二級經(jīng)銷商合作協(xié)議書范本
- 高標準農(nóng)田施工組織設(shè)計(全)
- 宿舍、辦公樓消防應(yīng)急預(yù)案
- 細胞全能性的課件資料
- 職業(yè)安全健康工作總結(jié)(2篇)
- 14S501-1 球墨鑄鐵單層井蓋及踏步施工
- YB 4022-1991耐火泥漿荷重軟化溫度試驗方法(示差-升溫法)
- 水土保持方案中沉沙池的布設(shè)技術(shù)
- 安全生產(chǎn)技術(shù)規(guī)范 第25部分:城鎮(zhèn)天然氣經(jīng)營企業(yè)DB50-T 867.25-2021
- 現(xiàn)代企業(yè)管理 (全套完整課件)
- 走進本土項目化設(shè)計-讀《PBL項目化學(xué)習(xí)設(shè)計》有感
- 高中語文日積月累23
評論
0/150
提交評論