![代碼審計(jì)與實(shí)操_第1頁(yè)](http://file4.renrendoc.com/view11/M00/27/38/wKhkGWWeVEuALIYDAADakVBHPIQ366.jpg)
![代碼審計(jì)與實(shí)操_第2頁(yè)](http://file4.renrendoc.com/view11/M00/27/38/wKhkGWWeVEuALIYDAADakVBHPIQ3662.jpg)
![代碼審計(jì)與實(shí)操_第3頁(yè)](http://file4.renrendoc.com/view11/M00/27/38/wKhkGWWeVEuALIYDAADakVBHPIQ3663.jpg)
![代碼審計(jì)與實(shí)操_第4頁(yè)](http://file4.renrendoc.com/view11/M00/27/38/wKhkGWWeVEuALIYDAADakVBHPIQ3664.jpg)
![代碼審計(jì)與實(shí)操_第5頁(yè)](http://file4.renrendoc.com/view11/M00/27/38/wKhkGWWeVEuALIYDAADakVBHPIQ3665.jpg)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高等職業(yè)教育系列叢書(shū)·信息安全專(zhuān)業(yè)技術(shù)教材
代碼審計(jì)與實(shí)操
胡前偉時(shí)瑞鵬李華風(fēng)◎主編
安厚霖張臻馮玉濤楊曄李強(qiáng)◎副主編
內(nèi)容簡(jiǎn)介
代碼審計(jì)是一種以發(fā)現(xiàn)程序錯(cuò)誤、安全漏洞和違反程序規(guī)范為目標(biāo)的源代碼分析技術(shù)。本書(shū)首
先對(duì)代碼審計(jì)的定義、代碼審計(jì)的流程、代碼審計(jì)的分類(lèi)進(jìn)行了系統(tǒng)的介紹,以phpStudy為例,介
紹了代碼審計(jì)環(huán)境的搭建以及當(dāng)前常用的代碼審計(jì)工具;其次詳細(xì)介紹了SQL注入漏洞審計(jì)、XSS
漏洞審計(jì)、CSRF漏洞審計(jì)、代碼執(zhí)行與命令執(zhí)行漏洞審計(jì)、文件包含漏洞審計(jì)、任意文件操作漏
洞審計(jì)、XXE與SSRF漏洞審計(jì)、變量覆蓋與反序列化漏洞審計(jì)、業(yè)務(wù)功能審計(jì)、YXCMS審計(jì)等內(nèi)
容;最后介紹了當(dāng)前常用的程序設(shè)計(jì)語(yǔ)言Java和Python的代碼審計(jì)案例。
本書(shū)是校企合作開(kāi)發(fā)的教材,注重所述內(nèi)容的可操作性和實(shí)用性,適合作為高等職業(yè)院校計(jì)算
機(jī)類(lèi)相關(guān)專(zhuān)業(yè)的教材,也可以作為網(wǎng)絡(luò)操作系統(tǒng)安全管理的參考用書(shū)。
圖書(shū)在版編目(CIP)數(shù)據(jù)
代碼審計(jì)與實(shí)操/胡前偉,時(shí)瑞鵬,李華風(fēng)主編.—北京:
中國(guó)鐵道出版社有限公司,2022.4
(高等職業(yè)教育系列叢書(shū).信息安全專(zhuān)業(yè)技術(shù)教材)
ISBN978-7-113-28884-6
Ⅰ.①代…Ⅱ.①胡…②時(shí)…③李…Ⅲ.①源代碼-
高等職業(yè)教育-教材Ⅳ.①TP311.52
中國(guó)版本圖書(shū)館CIP數(shù)據(jù)核字(2022)第028536號(hào)
書(shū)名:代碼審計(jì)與實(shí)操
作者:胡前偉時(shí)瑞鵬李華風(fēng)
策劃:翟玉峰編輯部電話(huà):(010)83517321
責(zé)任編輯:翟玉峰?彭立輝
封面設(shè)計(jì):尚明龍
責(zé)任校對(duì):安海燕
責(zé)任印制:樊啟鵬
出版發(fā)行:中國(guó)鐵道出版社有限公司(100054,北京市西城區(qū)右安門(mén)西街8號(hào))
網(wǎng)址:/51eds/
印刷:三河市興達(dá)印務(wù)有限公司
版次:2022年4月第1版2022年4月第1次印刷
開(kāi)本:787mm×1092mm1/16印張:19.5字?jǐn)?shù):472千
書(shū)號(hào):ISBN978-7-113-28884-6
定價(jià):54.00元
版權(quán)所有侵權(quán)必究
凡購(gòu)買(mǎi)鐵道版圖書(shū),如有印制質(zhì)量問(wèn)題,請(qǐng)與本社教材圖書(shū)營(yíng)銷(xiāo)部聯(lián)系調(diào)換。電話(huà):(010)63550836
打擊盜版舉報(bào)電話(huà):(010)63549461
代碼審計(jì)與實(shí)操
主編:
編審委員會(huì)胡前偉360安全人才能力發(fā)展中心
時(shí)瑞鵬天津職業(yè)大學(xué)
李華風(fēng)武漢市財(cái)政學(xué)校
副主編:
安厚霖天津職業(yè)大學(xué)
張臻天津職業(yè)大學(xué)
馮玉濤360安全人才能力發(fā)展中心
楊曄浙江警官職業(yè)學(xué)院
李強(qiáng)武漢市東西湖職業(yè)技術(shù)學(xué)校
委員:(按姓氏筆畫(huà)排序)
韋凱深圳職業(yè)技術(shù)學(xué)院
許學(xué)添廣東司法警官職業(yè)學(xué)院
李博文遼寧職業(yè)技術(shù)學(xué)院
張超媖湖北省高級(jí)人民法院
陳云志杭州職業(yè)技術(shù)學(xué)院
咸鶴群青島大學(xué)
宣樂(lè)飛杭州職業(yè)技術(shù)學(xué)院
高洪雨山東電力高等專(zhuān)科學(xué)校(國(guó)網(wǎng)技術(shù)學(xué)院)
前言
代碼審計(jì)是一種以發(fā)現(xiàn)程序錯(cuò)誤、安全漏洞和違反程序規(guī)范為目標(biāo)的源代碼分析技
術(shù),是對(duì)程序編寫(xiě)過(guò)程中源代碼的全面分析。其目的是發(fā)現(xiàn)錯(cuò)誤,找到安全隱患,從而
提高程序的安全性和可靠性,減少受到網(wǎng)絡(luò)攻擊的可能性。
代碼審計(jì)的方法通常包括白盒、黑盒、灰盒等方式。白盒是指通過(guò)對(duì)源代碼的分析
找到應(yīng)用缺陷;黑盒通常不涉及源代碼,多使用模糊測(cè)試的方式;而灰盒則是黑盒與白
盒相結(jié)合的方式。與其他信息安全技術(shù)相比,代碼審計(jì)是一種主動(dòng)安全防御技術(shù),通過(guò)
代碼審計(jì),可以從根本上加強(qiáng)信息系統(tǒng)的安全性和可靠性,對(duì)減少因信息系統(tǒng)漏洞造成
的損失有重要的意義和作用。
代碼審計(jì)要求的門(mén)檻較高,通常需要審計(jì)人員對(duì)PHP代碼非常熟悉且具有多年的
從業(yè)經(jīng)驗(yàn),能夠?qū)ΤR?jiàn)框架、常見(jiàn)CMS(內(nèi)容管理系統(tǒng))、常見(jiàn)功能漏洞有分析經(jīng)驗(yàn)。
除此之外,可以對(duì)多種編程語(yǔ)言進(jìn)行分析審計(jì)。因此,本書(shū)將以教學(xué)為目的對(duì)代碼審計(jì)
課程進(jìn)行講解,同時(shí)配以相應(yīng)漏洞的CMS審計(jì)實(shí)踐,從而深化讀者對(duì)代碼審計(jì)的理解,
最終達(dá)到實(shí)現(xiàn)安全防御的目的。
本書(shū)首先對(duì)代碼審計(jì)的定義、代碼審計(jì)的流程、代碼審計(jì)的分類(lèi)進(jìn)行了系統(tǒng)的介紹,
以phpStudy為例,介紹了代碼審計(jì)環(huán)境的搭建以及當(dāng)前常用的代碼審計(jì)工具;其次詳細(xì)
介紹了SQL注入漏洞審計(jì)、XSS漏洞審計(jì)、CSRF漏洞審計(jì)、代碼執(zhí)行與命令執(zhí)行漏洞
審計(jì)、文件包含漏洞審計(jì)、任意文件操作漏洞審計(jì)、XXE與SSRF漏洞審計(jì)、變量覆蓋
與反序列化漏洞審計(jì)、業(yè)務(wù)功能審計(jì)、YXCMS審計(jì)等內(nèi)容;最后介紹了對(duì)當(dāng)前常用的
程序設(shè)計(jì)語(yǔ)言Java和Python的代碼審計(jì)案例。
本書(shū)由360安全人才能力發(fā)展中心胡前偉、天津職業(yè)大學(xué)電子信息與工程學(xué)院時(shí)瑞鵬、
武漢市財(cái)政學(xué)校李華風(fēng)任主編并負(fù)責(zé)全書(shū)統(tǒng)稿,天津職業(yè)大學(xué)安厚霖和張臻、360安全
人才能力發(fā)展中心馮玉濤、浙江警官職業(yè)學(xué)院楊曄、武漢市東西湖職業(yè)技術(shù)學(xué)校李強(qiáng)任
副主編。編寫(xiě)分工:?jiǎn)卧?、單元5由時(shí)瑞鵬編寫(xiě),單元2、單元3由胡前偉編寫(xiě),單元
4、單元6由李華風(fēng)編寫(xiě),單元7至單元11由安厚霖編寫(xiě),單元12由張臻編寫(xiě),單元
13、單元14由馮玉濤、楊曄、李強(qiáng)共同編寫(xiě)。
I
代碼審計(jì)與實(shí)操
本書(shū)教學(xué)資源系統(tǒng)全面,配套PPT教學(xué)課件、習(xí)題答案等電子資源,與教材完全同步,
讀者可自行下載(網(wǎng)址/51eds/)。本書(shū)中的實(shí)驗(yàn)環(huán)境,已部署在
/,屬于收費(fèi)內(nèi)容,如需購(gòu)買(mǎi),請(qǐng)咨詢(xún)360安全人才能力發(fā)展中心。
本書(shū)注重所述內(nèi)容的可操作性和實(shí)用性,以網(wǎng)絡(luò)安全管理人員為主要讀者群體,同
時(shí)兼顧廣大計(jì)算機(jī)網(wǎng)絡(luò)愛(ài)好者的需求,是一本開(kāi)展網(wǎng)絡(luò)操作系統(tǒng)安全管理的實(shí)用教材和
必備的重要參考書(shū)。
由于時(shí)間倉(cāng)促,編者的知識(shí)水平和認(rèn)知能力有限,書(shū)中難免存在疏漏和不妥之處,
懇請(qǐng)讀者批評(píng)指正。
特別聲明:本書(shū)所講的代碼審計(jì)技術(shù)以及涉及的案例與代碼,是為了更好地幫助讀
者及相關(guān)公司找到安全隱患,從而有針對(duì)性地進(jìn)行代碼審計(jì)和安全防御,不能進(jìn)行其他
應(yīng)用。
編者
2021年7月
II
目錄
單元1代碼審計(jì)基礎(chǔ)????????????????????????11.7.4PhpStorm遠(yuǎn)程調(diào)試配置27
小結(jié)30
1.1代碼審計(jì)簡(jiǎn)介2
習(xí)題30
1.1.1代碼審計(jì)定義2
1.1.2代碼審計(jì)流程2單元2代碼審計(jì)前導(dǎo)??????????????????????32
1.1.3代碼審計(jì)分類(lèi)3
2.1影響代碼審計(jì)的配置33
1.2代碼審計(jì)環(huán)境搭建3
2.1.1PHP的配置文件33
1.2.1phpStudy環(huán)境介紹4
2.1.2傳遞變量相關(guān)的PHP配置33
1.2.2實(shí)驗(yàn):Windows與Linux搭建
2.1.3安全模式34
74CMS4
2.1.4文件上傳及目錄權(quán)限相關(guān)
1.3代碼審計(jì)工具概要8
配置35
1.4代碼編輯工具8
2.1.5魔術(shù)引號(hào)及遠(yuǎn)程文件相關(guān)
1.5自動(dòng)代碼審計(jì)工具11
配置35
1.5.1Seay代碼審計(jì)工具11
2.1.6錯(cuò)誤信息相關(guān)配置37
1.5.2RIPS代碼審計(jì)工具13
2.2代碼審計(jì)基本函數(shù)38
1.5.3VCG代碼審計(jì)工具14
2.2.1代碼調(diào)試函數(shù)38
1.5.4FortifySCA代碼審計(jì)工具14
2.2.2可能存在漏洞的點(diǎn)39
1.5.5自動(dòng)化審計(jì)工具部署15
2.3弱類(lèi)型的安全40
1.6代碼審計(jì)輔助工具16
2.4常見(jiàn)危險(xiǎn)函數(shù)43
1.6.1數(shù)據(jù)包分析工具16
2.4.1代碼執(zhí)行函數(shù)43
1.6.2瀏覽器輔助插件工具17
2.4.2包含函數(shù)43
1.6.3實(shí)驗(yàn):BurpSuite數(shù)據(jù)包攔截...19
2.4.3命令執(zhí)行函數(shù)44
1.6.4編解碼工具21
2.4.4文件操作函數(shù)44
1.6.5正則表達(dá)式測(cè)試工具22
2.4.5變量覆蓋函數(shù)44
1.6.6數(shù)據(jù)庫(kù)監(jiān)控工具222.4.6特殊函數(shù)45
1.7代碼審計(jì)動(dòng)態(tài)調(diào)試環(huán)境搭建242.5代碼審計(jì)思路46
1.7.1動(dòng)態(tài)調(diào)試原理252.5.1敏感函數(shù)參數(shù)回溯法46
1.7.2Xdebug安裝與配置252.5.2實(shí)驗(yàn):敏感函數(shù)參數(shù)回溯法
1.7.3安裝Xdebughelper插件26分析74CMS案例47
I
代碼審計(jì)與實(shí)操
2.5.3定向功能分析法484.2.1反射型XSS漏洞81
2.5.4實(shí)驗(yàn):定向功能法分析YXCMS4.2.2存儲(chǔ)型XSS漏洞81
圖片上傳功能494.2.3DOM型XSS漏洞83
2.5.5通讀全文法514.3XSS漏洞繞過(guò)84
2.5.6實(shí)驗(yàn):通讀全文法分析74CMS4.3.1編解碼繞過(guò)84
案例524.3.2HTML編寫(xiě)不規(guī)范繞過(guò)86
小結(jié)564.3.3黑名單過(guò)濾繞過(guò)86
習(xí)題564.3.4寬字節(jié)注入繞過(guò)88
4.4XSS漏洞防御89
單元3SQL注入漏洞審計(jì)????????????????58
4.5XSS審計(jì)CMS實(shí)驗(yàn)90
3.1SQL注入漏洞挖掘594.5.1實(shí)驗(yàn):BlueCMS1.6反射XSS
3.1.1SQL注入漏洞簡(jiǎn)介59審計(jì)90
3.1.2SQL注入漏洞分類(lèi)概述594.5.2實(shí)驗(yàn):BlueCMS1.6存儲(chǔ)XSS
3.1.3SQL注入漏洞挖掘經(jīng)驗(yàn)60審計(jì)93
3.2SQL注入分類(lèi)604.5.3實(shí)驗(yàn):74CMS3.4寬字節(jié)注入
3.2.1無(wú)過(guò)濾參數(shù)注入60反射XSS審計(jì)95
3.2.2無(wú)過(guò)濾HTTP頭注入614.5.4實(shí)驗(yàn):74CMS3.0存儲(chǔ)XSS
3.2.3字符串替換繞過(guò)注入63審計(jì)98
3.3SQL注入繞過(guò)addslashes64小結(jié)101
3.3.1寬字節(jié)注入繞過(guò)64習(xí)題101
3.3.2解碼注入繞過(guò)65
單元5CSRF漏洞審計(jì)?????????????????104
3.3.3字符串替換繞過(guò)67
3.4SQL注入防御685.1CSRF漏洞挖掘105
3.5SQL注入CMS實(shí)驗(yàn)705.1.1CSRF漏洞簡(jiǎn)介105
5.1.2CSRF漏洞挖掘經(jīng)驗(yàn)105
3.5.1實(shí)驗(yàn):BlueCMS1.6Union
5.2CSRF漏洞分類(lèi)105
注入70
5.2.1GET型CSRF漏洞105
3.5.2實(shí)驗(yàn):74CMS3.0寬字節(jié)
5.2.2POST型CSRF漏洞106
注入73
5.3CSRF漏洞防御107
小結(jié)
775.3.1驗(yàn)證HTTPReferer字段107
習(xí)題775.3.2驗(yàn)證Token109
5.3.3驗(yàn)證碼驗(yàn)證109
單元4XSS漏洞審計(jì)????????????????????79
5.4CSRF審計(jì)CMS實(shí)驗(yàn)110
4.1XSS漏洞挖掘805.4.1實(shí)驗(yàn):74CMS3.0CSRF
4.1.1XSS漏洞簡(jiǎn)介80審計(jì)110
4.1.2XSS漏洞挖掘經(jīng)驗(yàn)805.4.2實(shí)驗(yàn):YzmCMS5.8CSRF
4.2XSS漏洞分類(lèi)81審計(jì)113
II
目錄
小結(jié)1167.4文件包含漏洞審計(jì)CMS實(shí)驗(yàn)145
習(xí)題1177.4.1實(shí)驗(yàn):phpmyadmin4.8.1文件
包含審計(jì)145
單元6代碼執(zhí)行與命令執(zhí)行漏洞
7.4.2實(shí)驗(yàn):織夢(mèng)cmsV5.7包含Cache
審計(jì)????????????????????????????????118
審計(jì)147
6.1代碼執(zhí)行漏洞挖掘119小結(jié)149
6.1.1代碼執(zhí)行漏洞簡(jiǎn)介119習(xí)題150
6.1.2代碼執(zhí)行漏洞常見(jiàn)函數(shù)119
單元8任意文件操作漏洞審計(jì)?????????151
6.1.3代碼執(zhí)行漏洞審計(jì)經(jīng)驗(yàn)123
6.1.4代碼執(zhí)行漏洞防御1238.1文件上傳漏洞挖掘與實(shí)驗(yàn)152
6.2代碼執(zhí)行漏洞審計(jì)實(shí)驗(yàn)1248.1.1文件上傳漏洞簡(jiǎn)介152
6.2.1YCCMS3.3代碼執(zhí)行漏洞8.1.2文件上傳漏洞挖掘經(jīng)驗(yàn)152
審計(jì)1248.1.3文件上傳漏洞繞過(guò)152
6.2.2YzmCMS3.6代碼執(zhí)行漏洞8.1.4實(shí)驗(yàn):FineCMS文件上傳漏洞
審計(jì)127審計(jì)157
6.3命令執(zhí)行漏洞挖掘1298.2文件寫(xiě)入漏洞挖掘與實(shí)驗(yàn)159
6.3.1命令執(zhí)行漏洞簡(jiǎn)介1298.2.1文件寫(xiě)入漏洞簡(jiǎn)介159
6.3.2命令執(zhí)行漏洞常見(jiàn)函數(shù)1308.2.2文件寫(xiě)入漏洞挖掘經(jīng)驗(yàn)160
6.3.3命令執(zhí)行漏洞連接符1338.2.3實(shí)驗(yàn):74CMS3.0文件寫(xiě)入
6.3.4命令執(zhí)行漏洞審計(jì)經(jīng)驗(yàn)134漏洞審計(jì)160
6.3.5命令執(zhí)行漏洞防御1348.3文件讀?。ㄏ螺d)漏洞挖掘
6.4命令執(zhí)行審計(jì)CMS實(shí)驗(yàn)135與實(shí)驗(yàn)163
小結(jié)1388.3.1文件讀取漏洞簡(jiǎn)介163
習(xí)題1388.3.2文件下載漏洞簡(jiǎn)介164
8.3.3文件讀?。ㄏ螺d)漏洞挖掘
單元7文件包含漏洞審計(jì)???????????????141
經(jīng)驗(yàn)164
7.1文件包含漏洞挖掘1428.3.4實(shí)驗(yàn):MetInfo6.0.0文件讀取
7.1.1文件包含漏洞簡(jiǎn)介142漏洞審計(jì)165
7.1.2文件包含漏洞審計(jì)經(jīng)驗(yàn)1428.4文件刪除漏洞挖掘與實(shí)驗(yàn)167
7.1.3文件包含漏洞防御1428.4.1文件刪除漏洞簡(jiǎn)介167
7.2文件包含漏洞案例1438.4.2文件刪除漏洞挖掘經(jīng)驗(yàn)168
7.3文件包含漏洞繞過(guò)1448.4.3實(shí)驗(yàn):74CMS3.0文件刪除
7.3.1擴(kuò)展名過(guò)濾繞過(guò)(本地文件漏洞審計(jì)168
包含)1448.5文件操作漏洞防御170
7.3.2擴(kuò)展名過(guò)濾繞過(guò)(遠(yuǎn)程文件小結(jié)171
包含)144習(xí)題171
III
代碼審計(jì)與實(shí)操
單元9XXE與SSRF漏洞審計(jì)???????17410.4.1序列化介紹196
10.4.2反序列化漏洞介紹198
9.1XXE漏洞挖掘175
10.5反序列化漏洞CMS實(shí)驗(yàn)200
9.1.1XXE漏洞簡(jiǎn)介175
小結(jié)204
9.1.2XXE漏洞挖掘方法175
習(xí)題204
9.2XXE漏洞分類(lèi)175
9.3XXE漏洞防御177單元11業(yè)務(wù)功能審計(jì)???????????????????207
9.4XXE審計(jì)CMS實(shí)驗(yàn)177
11.1驗(yàn)證碼功能漏洞208
9.5SSRF漏洞挖掘180
11.1.1驗(yàn)證碼功能介紹208
9.5.1SSRF漏洞簡(jiǎn)介180
11.1.2驗(yàn)證碼常見(jiàn)安全問(wèn)題208
9.5.2SSRF漏洞挖掘經(jīng)驗(yàn)180
11.1.3驗(yàn)證碼繞過(guò)方式209
9.6SSRF漏洞分類(lèi)181
11.1.4實(shí)驗(yàn):驗(yàn)證碼功能漏洞導(dǎo)致任
9.6.1CURL引起的SSRF181
意用戶(hù)注冊(cè)實(shí)踐212
9.6.2file_get_contents引起的
11.2密碼重置功能漏洞214
SSRF182
11.2.1密碼重置功能介紹214
9.6.3fsocketopen造成的SSRF182
11.2.2密碼重置功能的常見(jiàn)案例...214
9.7SSRF漏洞繞過(guò)183
11.2.3密碼重置功能防御方法218
9.8SSRF漏洞防御183
11.2.4實(shí)驗(yàn):任意用戶(hù)密碼重置...218
9.9SSRF審計(jì)CMS實(shí)驗(yàn)184
11.3交易支付功能漏洞222
小結(jié)185
11.3.1交易支付功能漏洞介紹222
習(xí)題186
11.3.2交易支付功能漏洞挖掘223
單元10變量覆蓋與反序列化漏洞11.3.3交易支付功能常見(jiàn)安全
審計(jì)???????????????????????????????188問(wèn)題223
11.3.4交易支付功能防御方法225
10.1變量覆蓋漏洞挖掘189
小結(jié)225
10.1.1變量覆蓋漏洞簡(jiǎn)介189
習(xí)題226
10.1.2變量覆蓋漏洞審計(jì)經(jīng)驗(yàn)189
10.1.3變量覆蓋漏洞防御189單元12YXCMS審計(jì)??????????????????228
10.2變量覆蓋漏洞案例190
12.1審計(jì)前準(zhǔn)備229
10.2.1extract()函數(shù)使用不當(dāng)190
12.2留言板存儲(chǔ)型XSS分析232
10.2.2parse_str()函數(shù)使用不當(dāng)191
12.3碎片管理SQL注入漏洞分析234
10.2.3import_request_variables()函數(shù)
12.4任意文件操作漏洞分析236
使用不當(dāng)191
12.4.1YMCMS任意文件刪除236
10.2.4全局變量覆蓋192
12.4.2YMCMS任意文件寫(xiě)入236
10.2.5$$變量覆蓋193
小結(jié)237
10.3變量覆蓋審計(jì)CMS實(shí)驗(yàn)194
習(xí)題238
10.4反序列化漏洞196
IV
目錄
單元13Java代碼審計(jì)?????????????????239單元14Python框架安全??????????????271
13.1Java代碼審計(jì)入門(mén)24014.1Django框架概述272
13.1.1JavaEE介紹24014.1.1Django框架簡(jiǎn)介272
13.1.2Java代碼審計(jì)基礎(chǔ)24114.1.2實(shí)驗(yàn):Django搭建274
13.2Java代碼中的SQL注入漏洞24414.2Django框架常見(jiàn)漏洞276
13.2.1JDBC的SQL注入24414.2.1Django中的XSS漏洞276
13.2.2Mybatis的SQL注入24514.2.2Django的XSS案例278
13.2.3Java的SQL注入漏洞防御24714.2.3Django中的CSRF漏洞281
13.2.4OFCMS平臺(tái)SQL注入漏洞14.2.4Django中的SQL注入漏洞282
分析24914.2.5Django中的格式化字符串
13.3Java代碼中的XSS漏洞250漏洞282
13.3.1Java中的XSS漏洞簡(jiǎn)介25014.2.6Django中的其他漏洞284
13.3.2Java中XSS漏洞防御25314.3Flask框架常見(jiàn)漏洞284
13.3.3JEESNS平臺(tái)XSS漏洞分析..25414.3.1Flask框架介紹284
13.4Java命令執(zhí)行漏洞25614.3.2Flask中的SSTI漏洞286
13.4.1Java中的命令執(zhí)行漏洞14.4Tornado框架常見(jiàn)漏洞288
簡(jiǎn)介25614.4.1Tornado框架介紹288
13.4.2Java中命令執(zhí)行漏洞防御25814.4.2Tornado中任意文件讀取
13.5Java文件操作漏洞258漏洞289
13.5.1Java文件上傳漏洞258小結(jié)292
13.5.2Java文件讀取漏洞261習(xí)題292
13.5.3Java文件刪除漏洞262
附錄A相關(guān)術(shù)語(yǔ)?????????????????????????295
13.5.4MCMS平臺(tái)文件上傳漏洞
分析263
附錄B各單元習(xí)題參考答案???????????296
13.6Java代碼中的SSRF漏洞264
13.6.1Java中的SSRF漏洞簡(jiǎn)介264
參考文獻(xiàn)????????????????????????????????????299
13.6.2Java中的SSRF漏洞防御266
13.6.3Hawtio平臺(tái)SSRF漏洞分析..266
小結(jié)268
習(xí)題268
V
單元1
代碼審計(jì)基礎(chǔ)
本單元介紹了代碼審計(jì)中需要具備的基礎(chǔ)知識(shí),主要分為四部分進(jìn)行介紹。
第一部分主要介紹代碼審計(jì)的基本概念,包括:代碼審計(jì)的定義、代碼審計(jì)的流程等。
第二部分以phpStudy搭建騎士CMS人才管理系統(tǒng)為案例,詳細(xì)介紹Windows及Linux
操作系統(tǒng)下PHP代碼審計(jì)環(huán)境的搭建方法。
第三部分介紹代碼審計(jì)中常用的審計(jì)工具,包括代碼編輯工具、自動(dòng)代碼審計(jì)工具、代
碼審計(jì)輔助工具(包括正則表達(dá)式、數(shù)據(jù)包分析、編解碼、加解密、數(shù)據(jù)庫(kù)執(zhí)行監(jiān)控等常用
工具)。
第四部分介紹代碼審計(jì)中Xdebug與PhpStorm動(dòng)態(tài)調(diào)試環(huán)境搭建方法。
單元導(dǎo)圖:
學(xué)習(xí)目標(biāo):
●了解代碼審計(jì)概念;
●掌握代碼審計(jì)CMS環(huán)境搭建方法;
●熟悉常用代碼審計(jì)工具使用方法;
●掌握代碼審計(jì)動(dòng)態(tài)環(huán)境搭建方法。
1
代碼審計(jì)與實(shí)操
1.1代碼審計(jì)簡(jiǎn)介
代碼審計(jì)既是企業(yè)安全運(yùn)營(yíng)及安全從業(yè)者必備的基本技能,也是一種以發(fā)現(xiàn)程序錯(cuò)誤、安
全漏洞和違反程序規(guī)范為目標(biāo)的源代碼分析技能。本節(jié)將對(duì)代碼審計(jì)進(jìn)行介紹。
1.1.1代碼審計(jì)定義
代碼審計(jì)是防御性編程范式的一部分,旨在檢測(cè)代碼中存在的安全缺陷,針對(duì)存在的缺陷
提供解決方案,降低程序使用時(shí)的安全風(fēng)險(xiǎn)。幾乎可以通過(guò)對(duì)源代碼進(jìn)行審計(jì)的方式發(fā)現(xiàn)所有
代碼層面的安全漏洞,包括常見(jiàn)的Web安全漏洞、業(yè)務(wù)邏輯漏洞、應(yīng)用程序漏洞,以及應(yīng)用程
序配置文件中的不安全因素等。
在軟件發(fā)布前進(jìn)行代碼審計(jì),可將不安全因素扼殺在萌芽狀態(tài),極大縮減了后期修復(fù)所花
費(fèi)的成本。測(cè)試過(guò)程不會(huì)對(duì)線(xiàn)上業(yè)務(wù)造成影響,不會(huì)導(dǎo)致諸如系統(tǒng)宕機(jī)、服務(wù)卡死、數(shù)據(jù)庫(kù)阻
塞和業(yè)務(wù)數(shù)據(jù)丟失等風(fēng)險(xiǎn)。但由于代碼審計(jì)需要深入理解代碼邏輯和業(yè)務(wù)結(jié)構(gòu),因此對(duì)審計(jì)人
員的能力素質(zhì)要求較高,需要花費(fèi)的精力也更多。
通常,代碼審計(jì)的對(duì)象幾乎可以是所有的編程語(yǔ)言,常見(jiàn)的語(yǔ)言包括Java、C、C#、PHP、
Python和JSP等,本書(shū)將以PHP為主介紹代碼審計(jì)案例。
代碼審計(jì)作為安全領(lǐng)域中難度較高的一門(mén)學(xué)科,需要讀者在學(xué)習(xí)本課程之前具備以下條件:
(1)熟悉PHP開(kāi)發(fā)語(yǔ)言。
(2)熟悉Web安全常見(jiàn)漏洞及利用方法。
(3)熟悉數(shù)據(jù)庫(kù)語(yǔ)言。
1.1.2代碼審計(jì)流程
對(duì)程序代碼進(jìn)行白盒(代碼審計(jì))的方式檢查應(yīng)用程序的安全性,在代碼審計(jì)初期,需要
源代碼審計(jì)人員審計(jì)Web應(yīng)用的架構(gòu)設(shè)計(jì)、功能模塊,并與客戶(hù)相關(guān)人員協(xié)商審計(jì)重點(diǎn)及代碼
提供等信息。然后,源代碼審計(jì)人員使用工具對(duì)源代碼的脆弱性和安全型進(jìn)行初步分析,根據(jù)
客戶(hù)關(guān)注的重點(diǎn)對(duì)源代碼進(jìn)行手工審計(jì)。
一般情況下,代碼審計(jì)的基本流程主要包括四個(gè)階段(見(jiàn)圖1-1):
圖1-1代碼審計(jì)流程圖
2
單元1代碼審計(jì)基礎(chǔ)
(1)代碼審計(jì)階段。
(2)審計(jì)實(shí)施階段。
(3)審計(jì)復(fù)查階段。
(4)成果匯報(bào)階段。
審計(jì)人員對(duì)程序源代碼使用自動(dòng)化審計(jì)工具進(jìn)行漏洞掃描,并對(duì)掃描結(jié)果進(jìn)行人工審計(jì)確
認(rèn),如圖1-2所示。同時(shí),還需要對(duì)源代碼的常規(guī)漏洞和業(yè)務(wù)邏輯漏洞進(jìn)行審計(jì),最終輸出代碼
審計(jì)報(bào)告。
圖1-2漏洞掃描及結(jié)果確認(rèn)
1.1.3代碼審計(jì)分類(lèi)
代碼審計(jì)所采用的方式主要包括工具審計(jì)、人工確認(rèn)、人工抽取代碼進(jìn)行檢查。代碼審計(jì)
分類(lèi)包括自動(dòng)化審計(jì)和人工審計(jì)。在審計(jì)過(guò)程中通常采用上述兩種方法相結(jié)合的方式進(jìn)行審計(jì),
從而保證對(duì)應(yīng)用程序代碼審計(jì)的全面性。
1.自動(dòng)化審計(jì)
在源代碼的靜態(tài)安全審計(jì)中,使用自動(dòng)化審計(jì)工具代替人工漏洞挖掘,可以顯著提高審計(jì)
工作的效率。但是,自動(dòng)化審計(jì)也存在缺點(diǎn),包括:
(1)漏洞誤報(bào)多:很多自動(dòng)化掃描出的漏洞都不準(zhǔn)確,需要人工審計(jì)進(jìn)行確認(rèn)。
(2)漏洞識(shí)別率低:二次注入、邏輯安全等漏洞不能被掃描工具識(shí)別。
2.人工審計(jì)
相比于自動(dòng)化審計(jì)而言,人工審計(jì)更加準(zhǔn)確,卻也更加耗費(fèi)時(shí)間與精力。人工審計(jì)通常要
從程序的配置文件開(kāi)始梳理系統(tǒng),如application-context.xml、php.ini、web.xml等。然后,分析
程序的數(shù)據(jù)流,針對(duì)程序開(kāi)發(fā)框架不同,其傳遞的流程也不盡相同。
1.2代碼審計(jì)環(huán)境搭建
由于很多漏洞都依賴(lài)于軟件版本(如文件解析漏洞、中間件漏洞),因此代碼審計(jì)的環(huán)境搭
建需要秉承以下原則:
(1)環(huán)境搭建過(guò)程盡量簡(jiǎn)單易管理。
3
代碼審計(jì)與實(shí)操
(2)環(huán)境支持開(kāi)發(fā)語(yǔ)言、數(shù)據(jù)庫(kù)等依賴(lài)環(huán)境支持多種版本。
基于以上原則,本書(shū)使用phpStudy工具進(jìn)行集成環(huán)境搭建,從而簡(jiǎn)化環(huán)境搭建過(guò)程,將重
點(diǎn)更側(cè)重于漏洞代碼審計(jì)的技能。本節(jié)將介紹代碼審計(jì)環(huán)境搭建方法。
1.2.1phpStudy環(huán)境介紹
phpStudy是一款PHP調(diào)試環(huán)境的程序集成包,使用phpStudy搭建環(huán)境可以實(shí)現(xiàn)一次性安裝、
無(wú)須配置、方便PHP調(diào)試環(huán)境。該工具支持Windows、Linux、Mac三種操作系統(tǒng),與phpStudy
集成環(huán)境類(lèi)似的工具有XAMPP、APPServer、WampServer等。這里以phpStudy2018為例,對(duì)
該工具的常用功能進(jìn)行介紹。
1.服務(wù)控制
phpStudy主界面如圖1-3所示,該工具默認(rèn)提供了Apache與MySQL兩種服務(wù),可通過(guò)單
擊界面中“啟動(dòng)”“停止”“重啟”按鈕控制服務(wù)狀態(tài)。
2.phpStudy支持的軟件版本
phpStudy程序包集成了很多Web應(yīng)用環(huán)境,包括:
(1)Web應(yīng)用中間件部分包括IIS、Apache、Nginx。
(2)數(shù)據(jù)庫(kù)包括MySQL。
(3)PHP語(yǔ)言版本PHP7、PHP6、PHP5等版本。
在phpStudy主界面單擊“切換版本”按鈕,將顯示phpStudy2018支持服務(wù)的不同版本,
如圖1-4所示。用戶(hù)可根據(jù)不同的審計(jì)需求選擇合適的版本從而更方便地切換實(shí)驗(yàn)環(huán)境。
圖1-3phpStudy主界面圖1-4phpStudy支持版本
3.MySQL數(shù)據(jù)庫(kù)管理
phpStudy中MySQL數(shù)據(jù)庫(kù)默認(rèn)使用的管理員密碼均為root,用戶(hù)可通過(guò)“其他選項(xiàng)菜
單”→“MySQL工具”→“設(shè)置或修改密碼”對(duì)數(shù)據(jù)庫(kù)管理員密碼進(jìn)行修改,如圖1-5所示。
phpStudy還支持多種數(shù)據(jù)庫(kù)管理工具,包括MySQL-Front、phpMyAdmin。用戶(hù)可通過(guò)單擊
上述工具連接本機(jī)數(shù)據(jù)庫(kù)。圖1-6所示為MySQL-Front使用界面。
除上述功能外,phpStudy具有的功能還包括站點(diǎn)域名管理、環(huán)境端口檢測(cè)、配置文件修
改、網(wǎng)站根目錄等。
1.2.2實(shí)驗(yàn):Windows與Linux搭建74CMS
1.實(shí)驗(yàn)介紹
本次實(shí)驗(yàn)將在Windows及Linux系統(tǒng)下使用phpStudy集成環(huán)境搭建74CMS3.6人才管理系統(tǒng)。
4
單元1代碼審計(jì)基礎(chǔ)
注意:CMS網(wǎng)站有很多類(lèi)型,如74CMS、BlueCMS、ZZCMS等。不同的CMS搭建方法
也存在差異,本節(jié)以74CMS為例進(jìn)行搭建。
圖1-5修改MySQL密碼圖1-6MySQL-Front管理工具
2.預(yù)備知識(shí)
參考1.2.1節(jié)phpStudy環(huán)境介紹。
3.實(shí)驗(yàn)?zāi)康?/p>
掌握使用phpStudy搭建74CMS的方法。
4.實(shí)驗(yàn)環(huán)境
Windows操作系統(tǒng)主機(jī);CentOS7操作系統(tǒng)主機(jī);74CMS3.6安裝包;phpStudy2018安裝
包Windows與Linux版本(PHP5.0版本及以上、MySQL5.0版本及以上)。
5.實(shí)驗(yàn)步驟
第一部分:Windows搭建74CMS。
(1)安裝phpStudy并啟動(dòng)Apache與MySQL。解壓phpStudy2018安裝包,然后雙擊PhpStudy.
exe。單擊“啟動(dòng)”按鈕開(kāi)啟Apache與MySQL服務(wù),Apache服務(wù)默認(rèn)開(kāi)啟在本機(jī)的80端口提
供HTTP服務(wù),MySQL服務(wù)默認(rèn)開(kāi)啟在本機(jī)的3306端口提供數(shù)據(jù)庫(kù)服務(wù)。單擊“停止”按鈕
可以將兩個(gè)服務(wù)關(guān)閉,如圖1-7所示。
注意:如果Apache或MySQL服務(wù)啟動(dòng)失敗,很有可能是端口80或3306被占用導(dǎo)致的服
務(wù)啟動(dòng)失敗。
圖1-7phpStudy啟動(dòng)與停止
(2)單擊“其他選項(xiàng)菜單”找到“網(wǎng)站根目錄”打開(kāi)phpStudy默認(rèn)提供的網(wǎng)站路徑,這里
5
代碼審計(jì)與實(shí)操
路徑為C:\PhpStudy\PHPTutorial\WWW,如圖1-8所示。
圖1-8網(wǎng)站根路徑圖
(3)將本實(shí)驗(yàn)提供74CMS文件中的upload文件夾復(fù)制到網(wǎng)站根路徑。在Chrome瀏覽器中
輸入“http://主機(jī)IP地址/安裝目錄/install”。若訪(fǎng)問(wèn)成功則顯示圖1-9所示界面。根據(jù)安裝向
導(dǎo)自行進(jìn)行安裝,在安裝過(guò)程中需要填寫(xiě)數(shù)據(jù)庫(kù)用戶(hù)名及密碼(與phpStudy對(duì)應(yīng))、自定義數(shù)據(jù)
庫(kù)名稱(chēng)、管理員用戶(hù)名密碼等。安裝過(guò)程如圖1-9所示。
圖1-9網(wǎng)站安裝過(guò)程簡(jiǎn)易圖
(4)向?qū)О惭b后,若顯示“恭喜您,您已成功安裝騎士cms”字樣則安裝成功,如圖1-10
所示。單擊“網(wǎng)站首頁(yè)”按鈕,瀏覽網(wǎng)站安裝后的結(jié)果,同時(shí)也可單擊“網(wǎng)站后臺(tái)”按鈕輸入
用戶(hù)名、密碼登錄后臺(tái)。
圖1-10網(wǎng)站安裝成功
6
單元1代碼審計(jì)基礎(chǔ)
第二部分:CentOS7搭建74CMS。
在Linux操作系統(tǒng)下使用以下命令:
yuminstall-ywget
wget-Oinstall.sh/install.sh
shinstall.sh
(1)下載phpStudy的非docker版本進(jìn)行安裝。安裝成功后,界面顯示瀏覽器訪(fǎng)問(wèn)地址及系
統(tǒng)登錄的賬號(hào)及密碼,如圖1-11所示。
圖1-11phpStudy安裝成功圖
(2)在瀏覽器中輸入54:9080/4EC69D并輸入用戶(hù)名進(jìn)行登錄,通過(guò)“首頁(yè)”
選項(xiàng)卡關(guān)閉nginx并啟動(dòng)apache2.4.39。單擊“數(shù)據(jù)庫(kù)”選項(xiàng)卡,安裝MySQL5.7.27版本,如圖1-12
所示。
圖1-12phpStudy配置圖
(3)通過(guò)上述管理界面可查看Web根路徑為“/www/admin/localhost_80/wwwroot”,在該路
徑下使用命令“echohello>index.php”,然后使用瀏覽器訪(fǎng)問(wèn)“http://主機(jī)IP/index.php”顯示頁(yè)
面,則說(shuō)明網(wǎng)站搭建成功,如圖1-13所示。
圖1-13index頁(yè)面瀏覽圖
7
代碼審計(jì)與實(shí)操
1.3代碼審計(jì)工具概要
在代碼審計(jì)過(guò)程中,為保證審計(jì)代碼的完整性與準(zhǔn)確性,通常需要使用自動(dòng)化代碼審計(jì)與
人工審計(jì)相結(jié)合的方式,不同的審計(jì)方式也將使用各種各樣的審計(jì)工具來(lái)提升工作效率,下面
對(duì)自動(dòng)審計(jì)及人工審計(jì)使用的工具進(jìn)行介紹。
1.自動(dòng)代碼審計(jì)工具
自動(dòng)代碼審計(jì)工具可快速地掃描程序中的常規(guī)漏洞,并進(jìn)行驗(yàn)證分析。此類(lèi)工具的使用在
一定程度上提升了代碼審計(jì)的效率。
但是,自動(dòng)審計(jì)工具的缺點(diǎn)也很明顯。自動(dòng)代碼審計(jì)工具只能根據(jù)靜態(tài)代碼審計(jì)常規(guī)漏洞。
而對(duì)于代碼邏輯、業(yè)務(wù)邏輯類(lèi)型的漏洞卻很難發(fā)現(xiàn)。同時(shí),自動(dòng)審計(jì)工具的掃描結(jié)果也存在一
定的誤報(bào)率,而誤報(bào)率過(guò)高則會(huì)一定程度上增加審計(jì)的工作量。
根據(jù)代碼語(yǔ)言的不同使用的審計(jì)工具也不同,PHP、Java、Python都存在很多開(kāi)源的自動(dòng)代
碼審計(jì)工具。本單元主要介紹PHP代碼審計(jì)工具,包括Seay、RIPS、VCG等。
2.人工代碼審計(jì)工具
人工代碼審計(jì)過(guò)程中,往往會(huì)使用動(dòng)態(tài)調(diào)試與審計(jì)小工具相結(jié)合的方式。很多程序在設(shè)計(jì)
之初都會(huì)考慮常見(jiàn)安全漏洞問(wèn)題,尤其對(duì)于用戶(hù)傳入的數(shù)據(jù)都會(huì)經(jīng)過(guò)嚴(yán)格的過(guò)濾篩選與編碼加
密。針對(duì)數(shù)據(jù)流操作的不同方式,一般會(huì)將審計(jì)工具分為以下幾類(lèi):
(1)對(duì)數(shù)據(jù)進(jìn)行編碼及加密:加密、解密編碼解碼工具。
(2)對(duì)數(shù)據(jù)進(jìn)行正則表達(dá)式匹配:正則表達(dá)式測(cè)試工具。
人工分析利用漏洞的漏洞測(cè)試案例代碼(EXP)需要的工具:
(1)測(cè)試EXP:數(shù)據(jù)包抓包分析工具。
(2)SQL注入漏洞測(cè)試:數(shù)據(jù)庫(kù)執(zhí)行監(jiān)控工具。
使用上述代碼審計(jì)工具可以更方便地測(cè)試程序中各種功能漏洞。
1.4代碼編輯工具
代碼編輯工具是代碼審計(jì)的必備工具,利用代碼編輯工具可以更方便地查看代碼、調(diào)試功能、
查找內(nèi)容等。而代碼編輯工具發(fā)展至今也多種多樣,在代碼審計(jì)過(guò)程中選擇適合的代碼編輯工
具可以達(dá)到事半功倍的效果。
一般將代碼編輯工具分為兩類(lèi):輕量級(jí)代碼編輯工具、集成開(kāi)發(fā)工具。
(1)輕量級(jí)代碼編輯工具:常用的輕量級(jí)代碼編輯工具包括SublimeText、Notepad++、
Editplus、UltraEdit等。此類(lèi)工具普遍支持編程語(yǔ)言高亮字體顯示、全局搜索等特點(diǎn)。由于其啟動(dòng)
快、對(duì)文本操作方便,適用于審計(jì)代碼量小的PHP文件。
(2)集成開(kāi)發(fā)工具:常用的集成開(kāi)發(fā)工具包括VisualStudioCode(VSCode)、ZendStudio、
PhpStorm、PhpDesigner等,此類(lèi)工具設(shè)計(jì)之初是為了程序開(kāi)發(fā)便捷,因此其具有的功能非常全面。
此類(lèi)工具常見(jiàn)的特點(diǎn)包括:支持不同語(yǔ)言高亮、對(duì)代碼進(jìn)行本地及遠(yuǎn)程調(diào)試功能、自動(dòng)掃描代碼
8
單元1代碼審計(jì)基礎(chǔ)
語(yǔ)法錯(cuò)誤等,但是功能的全面也導(dǎo)致此類(lèi)工具啟動(dòng)較慢且安裝困難。因此,此類(lèi)工具更適用于
審計(jì)開(kāi)源框架程序,大型CMS等復(fù)雜程序。
本節(jié)介紹三款適用于PHP代碼的編輯工具:SublimeText、VSCode、PhpStorm。
1.SublimeText
SublimeText是一款跨平臺(tái)且識(shí)別多種語(yǔ)言的文件編輯器,支持安裝在MacOS、Linux、
Windows平臺(tái)上,使用此工具可以編輯HTML、CSS、JavaScript、PHP等應(yīng)用程序。因?yàn)槠潴w積
小、擴(kuò)展性強(qiáng)、打開(kāi)文本速度快等優(yōu)點(diǎn),目前已經(jīng)被很多計(jì)算機(jī)領(lǐng)域工作者使用。當(dāng)代碼審計(jì)
量比較小時(shí),建議直接使用SublimeText查看代碼。下面對(duì)該工具的特點(diǎn)進(jìn)行介紹:
(1)支持多種編碼格式:SublimeText支持的字符編碼包括ISO8859、UTF-8、GBK、GB2312
等,用戶(hù)可通過(guò)File→ReopenwithEncoding命令設(shè)置編碼字符集解決亂碼問(wèn)題,如圖1-14
所示。
圖1-14SublimeText設(shè)置編碼
(2)支持外掛插件:SublimeText擁有強(qiáng)大的可擴(kuò)展性,用戶(hù)可根據(jù)自己的需要安裝不同的
插件,如FileDiffs(文件比較)、MarkDownEditing(查看和編輯MarkDown文件)、Alignment(代
碼自動(dòng)對(duì)齊)、Git(代碼及版本管理)等。用戶(hù)可通過(guò)選擇Preferences→PackageControl命令
進(jìn)行插件的搜索,如圖1-15所示。
圖1-15搜索SublimeText插件
9
代碼審計(jì)與實(shí)操
2.VSCode
VSCode是微軟公司開(kāi)發(fā)的一款跨平臺(tái)的源代碼編輯器。該工具除了支持PHP語(yǔ)言外,還
支持C++、Java、Python、Go等語(yǔ)言。圖1-16所示為VSCode工具界面,該界面包括三部分:
活動(dòng)欄、側(cè)邊欄、編輯欄。
(1)活動(dòng)欄:從上至下依次為搜索、使用Git、debug調(diào)試、使用插件。
(2)側(cè)邊欄:用于瀏覽項(xiàng)目文件或文件夾結(jié)構(gòu)。
(3)編輯欄:用于編輯代碼。
圖1-16VSCode界面
VSCode工具的特點(diǎn)如下:
(1)支持Windows、Linux、Mac多個(gè)操作系統(tǒng)版本。
(2)工具完全開(kāi)源免費(fèi)且集成Git。
(3)支持多種文件格式,包括HTML、CSS、XML、Less等。
(4)支持強(qiáng)大的插件擴(kuò)展功能。
(5)支持調(diào)試功能。
3.PhpStorm
PhpStorm是JetBrains公司開(kāi)發(fā)的一款商業(yè)PHP集成開(kāi)發(fā)工具,旨在提高用戶(hù)效率,可深刻
理解用戶(hù)的編碼,提供智能代碼補(bǔ)全、快速導(dǎo)航及即時(shí)錯(cuò)誤檢查功能。圖1-17所示為PhpStorm
工具的項(xiàng)目界面。
圖1-17PhpStorm界面
近幾年由于JetBrains公司開(kāi)發(fā)的各款I(lǐng)DE(集成開(kāi)發(fā)環(huán)境)逐漸流行,在進(jìn)行代碼開(kāi)發(fā)與
10
單元1代碼審計(jì)基礎(chǔ)
代碼審計(jì)時(shí)此款工具也受到很多計(jì)算機(jī)從業(yè)者的青睞。在審計(jì)大型CMS、PHP常用框架時(shí)也推
薦使用該工具,這主要因?yàn)樵摴ぞ甙ㄒ韵绿攸c(diǎn):
(1)支持語(yǔ)法高亮、自動(dòng)補(bǔ)全、自動(dòng)掃描檢測(cè)PHP代碼中語(yǔ)法錯(cuò)誤。
(2)與ZendStudio相比,該工具屬于輕量級(jí)集成開(kāi)發(fā)工具,啟動(dòng)速度略快。
(3)支持本地調(diào)試與遠(yuǎn)程調(diào)試,有利于代碼審計(jì)與代碼的流程走讀。
1.5自動(dòng)代碼審計(jì)工具
在源代碼的靜態(tài)安全審計(jì)中,使用自動(dòng)化工具代替人工漏洞挖掘,可以顯著提高審計(jì)工作
的效率。使用自動(dòng)化代碼審計(jì)工具,是每一個(gè)代碼審計(jì)人員的必備能力。本節(jié)將介紹四款PHP
源代碼審計(jì)工具:Seay、RIPS、VCG、FortifySCA。
1.5.1Seay代碼審計(jì)工具
Seay代碼審計(jì)工具是由阿里巴巴公司使用C#開(kāi)發(fā)的一款運(yùn)行于Windows操作系統(tǒng)的PHP
代碼安全審計(jì)系統(tǒng)。該系統(tǒng)可以審計(jì)常見(jiàn)的Web安全漏洞,如SQL注入、代碼執(zhí)行漏洞、命令
執(zhí)行漏洞、XSS等。在對(duì)PHP代碼進(jìn)行白盒測(cè)試時(shí),使用Seay代碼審計(jì)系統(tǒng)進(jìn)行代碼審計(jì)是輔
助代碼白盒測(cè)試的一種方法。很多初學(xué)者在學(xué)習(xí)代碼審計(jì)時(shí)都會(huì)首選Seay系統(tǒng),這主要是因?yàn)?/p>
該工具具有安裝簡(jiǎn)單、審計(jì)簡(jiǎn)單、開(kāi)源、學(xué)習(xí)簡(jiǎn)單等特點(diǎn)。
該系統(tǒng)支持的功能包括代碼自動(dòng)審計(jì)、代碼調(diào)試、函數(shù)定位、插件擴(kuò)展、自定義規(guī)則配置、
數(shù)據(jù)庫(kù)執(zhí)行監(jiān)控等。
下面對(duì)Seay代碼審計(jì)工具的常見(jiàn)功能進(jìn)行介紹。
1.代碼自動(dòng)審計(jì)
單擊“新建項(xiàng)目”按鈕導(dǎo)入項(xiàng)目,然后選擇“自動(dòng)審計(jì)”選項(xiàng)卡,單擊“開(kāi)始”按鈕即可
對(duì)已創(chuàng)建的項(xiàng)目進(jìn)行自動(dòng)化審計(jì)。當(dāng)審計(jì)系統(tǒng)發(fā)現(xiàn)可能存在漏洞的代碼后將把審計(jì)結(jié)果打印至
列表框。用戶(hù)可以通過(guò)雙擊漏洞選項(xiàng)定位至指定代碼,同時(shí)定位的代碼將以高亮形式顯示,代
碼自動(dòng)審計(jì)結(jié)果如圖1-18所示。
圖1-18Seay自動(dòng)審計(jì)
11
代碼審計(jì)與實(shí)操
注意:如果程序在開(kāi)發(fā)過(guò)程中使用的編碼方式不同,將導(dǎo)致Seay導(dǎo)入項(xiàng)目后存在亂碼情
況,這需要用戶(hù)單擊“編碼”選項(xiàng)切換為不顯示亂碼的編碼方式。
2.定位函數(shù)功能
定位函數(shù)功能將從程序代碼中迅速定位出指定函數(shù)的位置,該功能在使用敏感函數(shù)參數(shù)回
溯法時(shí)發(fā)揮作用。假設(shè)用戶(hù)在進(jìn)行代碼審計(jì)時(shí)發(fā)現(xiàn)dvwaHtmlEcho()函數(shù)需要查看,可以通過(guò)右
擊該函數(shù),從彈出的快捷菜單中選擇“定位函數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)雨淋撒砂機(jī)行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年腦分塊模型項(xiàng)目可行性研究報(bào)告
- 2025年移塵紙項(xiàng)目可行性研究報(bào)告
- 2025年特制手套項(xiàng)目可行性研究報(bào)告
- 2025年橡膠加工助劑項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)攝像槍行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年揚(yáng)聲器磁體項(xiàng)目可行性研究報(bào)告
- 2025年墻角柜項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)低溫沖擊試驗(yàn)機(jī)行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年人造粘膠長(zhǎng)絲繡花線(xiàn)項(xiàng)目可行性研究報(bào)告
- 消防設(shè)施操作員報(bào)名承諾書(shū)
- 小學(xué)二年級(jí)部編人教版上冊(cè)語(yǔ)文期末整理復(fù)習(xí)題
- 東華醫(yī)院麻醉科QoR-40隨訪(fǎng)表
- 2022年全國(guó)新高考Ⅰ卷:馮至《江上》
- DB51∕T 2767-2021 安全生產(chǎn)風(fēng)險(xiǎn)分級(jí)管控體系通則
- 反興奮劑考試試題與解析
- 建筑工程材料取樣及收費(fèi)標(biāo)準(zhǔn)
- 堤壩工程施工組織設(shè)計(jì)
- CPIM BSCM__v3_0_VC(課堂PPT)
- 常用的螺紋底孔及公差規(guī)定
- 會(huì)議審批表模板
評(píng)論
0/150
提交評(píng)論