计算机类专业教育 > 网络与信息安全类

代码审计与实操

书号:9787113288846 套系名称:高等职业教育系列丛书.信息安全专业技术教材

作者:胡前伟 时瑞鹏 李华风 出版日期:2022-04-01

定价:54.00 页码 / 开本: /16

策划编辑:翟玉峰 责任编辑:翟玉峰 包宁

适用专业:计算机类 适用层次:高等职业(专科)

最新印刷时间:

资源下载
教学课件 教学素材(暂无)
习题答案(暂无) 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  • 代码审计是一种以发现程序错误、安全漏洞和违反程序规范为目标的源代码分析技术。本书首先对代码审计的定义、代码审计的流程、代码审计的分类进行了系统的介绍,以 phpStudy 为例,介络了代码审计环境的搭建以及当前常用的代码审计工具;其次详细介绍了SOL.注入漏洞审计、XSS 漏洞审计、CSRF 漏洞审计、代码执行与命令执行漏洞审计、文件包含漏洞审计、任意文件操作漏洞审计、XXE与SSRF漏洞审计、变量覆盖与反序列化漏洞审计、业务功能审计、YXCMS 审计等内容;最后介绍了当前常用的程序设计语言Java 和 Python 的代码审计案例。
          本书是校企合作开发的教材,注重所述内容的可操作性和实用性,适合作为高等职业院校计算机类相关专业的教材,也可以作为网络操作系统安全管理的参考用书。
  •      代码审计是一种以发现程序错误、安全漏洞和违反程序规范为目标的源代码分析技术,是对程序编写过程中源代码的全面分析。其目的是发现错误,找到安全隐患,从而提高程序的安全性和可靠性,减少受到网络攻击的可能性。
         代码审计的方法通常包括白盒、黑盒、灰盒等方式。白盒是指通过对源代码的分析找到应用缺陷;黑盒通常不涉及源代码,多使用模糊测试的方式;而灰盒则是黑盒与白盒相结合的方式。与其他信息安全技术相比,代码审计是一种主动安全防御技术,通过代码审计,可以从根本上加强信息系统的安全性和可靠性,对减少因信息系统漏洞造成的损失有重要的意义和作用。
         代码审计要求的门槛较高,通常需要审计人员对PHP代码非常熟悉且具有多年的从业经验,能够对常见框架、常见CMS(内容管理系统)、常见功能漏洞有分析经验。除此之外,可以对多种编程语言进行分析审计。因此,本书将以教学为目的对代码审计课程进行讲解,同时配以相应漏洞的 CMS 审计实践,从而深化读者对代码审计的理解,最终达到实现安全防御的目的。
         本书首先对代码审计的定义、代码审计的流程、代码审计的分类进行了系统的介绍,以 phpStudy 为例,介绍了代码审计环境的搭建以及当前常用的代码审计工具;其次详细介绍了SOL 注入漏洞审计、XSS漏洞审计、CSRF漏洞审计、代码执行与命令执行漏洞审计、文件包含漏洞审计、任意文件操作漏洞审计、XXE与SSRF 漏洞审计、变量覆盖与反序列化漏洞审计、业务功能审计、YXCMS审计等内容;最后介绍了对当前常用的程序设计语言 Java和 Python的代码审计案例。
        本书由360安全人才能力发展中心胡前伟、天津职业大学电子信息与工程学院时瑞鹏、武汉市财政学校李华风任主编并负责全书统稿,天津职业大学安厚霖和张臻、360安全人才能力发展中心冯玉涛、浙江警官职业学院杨晔、武汉市东西湖职业技术学校李强任副主编。编写分工∶单元1、单元5由时瑞鹏编写,单元2、单元3由胡前伟编写,单元4、单元6由李华风编写,单元7至单元11由安厚霖编写,单元12由张臻编写,单元13、单元14由冯玉涛、杨晔、李强共同编写。
        本书教学资源系统全面,配套PPT教学课件、习题答案等电子资源,与教材完全同步,读者可自行下载(网址 http∶//www.tdpress.com/51eds/)。本书中的实验环境,已部署在https∶//university.360.cn/,属于收费内容,如需购买,请咨询360安全人才能力发展中心。
        本书注重所述内容的可操作性和实用性,以网络安全管理人员为主要读者群体,同时兼顾广大计算机网络爱好者的需求,是一本开展网络操作系统安全管理的实用教材和
    必备的重要参考书。
        由于时间仓促,编者的知识水平和认知能力有限,书中难免存在疏漏和不妥之处,恳请读者批评指正。
        特别声明∶本书所讲的代码审计技术以及涉及的案例与代码,是为了更好地帮助读者及相关公司找到安全隐患,从而有针对性地进行代码审计和安全防御,不能进行其他应用。
                                                                                                          编 者2021年7月
    
  • 单元1 代码审计基础 1
    1.1 代码审计简介 2
    1.1.1 代码审计定义 2 
    1.1.2 代码审计流程 2 
    1.1.3 代码审计分类          3 
    1.2 代码审计环境搭建 3
    1.2.1 phpStudy环境介绍 4 
    1.2.2 实验∶Windows与Linux搭建74CMS      4
    1.3 代码审计工具概要 8
    1.4 代码编辑工具 8 
    1.5 自动代码审计工具 11
    1.5.1 Seay代码审计工具 11 
    1.5.2 RIPS代码审计工具 13 
    1.5.3 VCG代码审计工具 14 
    1.5.4 Fortify SCA代码审计工具 14 
    1.5.5 自动化审计工具部署 15 
    1.6 代码审计辅助工具 16
    1.6.1 数据包分析工具 16
    1.6.2 浏览器辅助插件工具 17 
    1.6.3 实验∶BurpSuite数据包拦截 19 
    1.6.4 编解码工具 21 
    1.6.5 正则表达式测试工具 22 
    1.6.6 数据库监控工具 22 
    1.7 代码审计动态调试环境搭建 24
    1.7.1 动态调试原理 25
    1.7.2 Xdebug安装与配置 25 
    1.7.3 安装Xdebug helper插件 26
    1.7.4 PhpStorm远程调试配置 27
    小结 30
    习题 30
    单元2 代码审计前导 32
    2.1 影响代码审计的配置 33
    2.1.1 PHP的配置文件 33 
    2.1.2 传递变量相关的PHP配置 33
    2.1.3 安全模式 34 
    2.1.4 文件上传及目录权限相关配置 35 
    2.1.5 魔术引号及远程文件相关配置 35
    2.1.6 错误信息相关配置 37
    2.2 代码审计基本函数 38
    2.2.1 代码调试函数 38
    2.2.2 可能存在漏洞的点 39 
    2.3 弱类型的安全 40 
    2.4 常见危险函数 43
    2.4.1 代码执行函数 43 
    2.4.2 包含函数 43 
    2.4.3 命令执行函数 44
    2.4.4 文件操作函数 44 
    2.4.5 变量覆盖函数 44 
    2.4.6 特殊函数 45
    2.5 代码审计思路 46
    2.5.1 敏感函数参数回溯法 46 
    2.5.2 实验∶敏感函数参数回溯法分析74CMS案例 47
    2.5.3 定向功能分析法 48 
    2.5.4 实验∶定向功能法分析YXCMS图片上传功能 49 
    2.5.5 通读全文法 51 
    2.5.6 实验∶通读全文法分析74CMS案例 52
    小结 56
    习题 56
    单元3 SQL注入漏洞审计 58 
    3.1 SQL注入漏洞挖掘 59
    3.1.1 SQL注入漏洞简介 59 
    3.1.2 SQL注入漏洞分类概述 59 
    3.1.3 SQL注入漏洞挖掘经验 60 
    3.2 SQL注入分类 60
    3.2.1 无过滤参数注入 60 
    3.2.2 无过滤HTTP头注入 61 
    3.2.3 字符串替换绕过注入 63 
    3.3 SQL注入绕过addslashes 64
    3.3.1 宽字节注入绕过 64
    3.3.2 解码注入绕过 65 
    3.3.3 字符串替换绕过 67 
    3.4 SQL注入防御 68
    3.5 SQL注入CMS实验 70
    3.5.1 实验∶BlueCMS 1.6 Union 注入 70
    3.5.2 实验∶74CMS 3.0宽字节注入 73
    小结 77
    习题 77
    单元 4  XSS漏洞审计 79
    4.1 XSS漏洞挖掘 80
    4.1.1 XSS漏洞简介 80 
    4.1.2 XSS漏洞挖掘经验 80 
    4.2 XSS漏洞分类 81
    4.2.1 反射型XSS漏洞 81
    4.2.2 存储型XSS漏洞 81
     4.2.3 DOM型XSS漏洞 83 
    4.3 XSS漏洞绕过 84
    4.3.1 编解码绕过 84 
    4.3.2 HTML编写不规范绕过 86 
    4.3.3 黑名单过滤绕过 86
    4.3.4 宽字节注入绕过 88
    4.4 XSS漏洞防御 89 
    4.5 XSS审计CMS实验 90 
    4.5.1 实验∶BlueCMS1.6反射XSS审计 90
    4.5.2 实验∶BlueCMS 1.6存储XSS审计 90
    4.5.3 实验∶74CMS3.4宽字节注入反射XSS审计 95 
    4.5.4 实验∶74CMS 3.0存储XSS审计 98
    小结 101
    习题 101
    单元5 CSRF漏洞审计 104
    5.1 CSRF漏洞挖掘 105
    5.1.1 CSRF漏洞简介 105 
    5.1.2 CSRF漏洞挖掘经验 105
    5.2 CSRF漏洞分类 105
    5.2.1 GET型CSRF漏洞 105 
    5.2.2 POST型CSRF漏洞 106 
    5.3 CSRF漏洞防御 107
    5.3.1 验证HTTP Referer字段 107
    5.3.2 验证Token 109
    5.3.3 验证码验证 109 
    5.4 CSRF审计CMS实验 110
    5.4.1 实验∶74CMS 3.0 CSRF审计 110 
    5.4.2 实验∶YzmCMS 5.8 CSRF审计 115
    小结 116
    习题 117
    单元6 代码执行与命令执行漏洞审计 118
    6.1 代码执行漏洞挖掘 119
    6.1.1 代码执行漏洞简介 119 
    6.1.2 代码执行漏洞常见函数 119 
    6.1.3 代码执行漏洞审计经验 123 
    6.1.4 代码执行漏洞防御 123
    6.2 代码执行漏洞审计实验 124
    6.2.1 YCCMS 3.3代码执行漏洞审计 124
    6.2.2 YzmCMS3.6代码执行漏洞审计 127 
    6.3 命令执行漏洞挖掘 129
    6.3.1 命令执行漏洞简介 129 
    6.3.2 命令执行漏洞常见函数 130 
    6.3.3 命令执行漏洞连接符 133 
    6.3.4 命令执行漏洞审计经验 134 
    6.3.5 命令执行漏洞防御 134
    6.4 命令执行审计CMS实验 135
    小结 138
    习 题 138
    单元7 文件包含漏洞审计 141
    7.1 文件包含漏洞挖掘 142
    7.1.1 文件包含漏洞简介 142 
    7.1.2 文件包含漏洞审计经验 142 
    7.1.3 文件包含漏洞防御 142
     7.2 文件包含漏洞案例 143 
    7.3 文件包含漏洞绕过 144
    7.3.1 扩展名过滤绕过(本地文件包含) 144
    7.3.2 扩展名过滤绕过(远程文件包含.) 144
    7.4 文件包含漏洞审计CMS实验 145 
    7.4.1 实验∶phpmyadmin 4.8.1文件包含审计 145 
    7.4.2 实验∶织梦cms V5.7包含Cache审计 147 
    小结 149 
    习题 150
    单元8 任意文件操作漏洞审计 151
    8.1 文件上传漏洞挖掘与实验 152
    8.1.1 文件上传漏洞简介 152 
    8.1.2 文件上传漏洞挖掘经验 152 
    8.1.3 文件上传漏洞绕过 152 
    8.1.4 实验∶FineCMS文件上传漏洞审计 157 
    8.2 文件写入漏洞挖掘与实验 159
    8.2.1 文件写入漏洞简介 159
    8.2.2 文件写入漏洞挖掘经验 160 
    8.2.3 实验∶74CMS 3.0文件写入漏洞审计 160
    8.3 文件读取(下载)漏洞挖掘与实验 163
    8.3.1 文件读取漏洞简介 163 
    8.3.2 文件下载漏洞简介 164 
    8.3.3 文件读取(下载)漏洞挖掘经验 164
    8.3.4 实验∶MetInfo 6.0.0文件读取漏洞审计 165
    8.4 文件删除漏洞挖掘与实验 167
    8.4.1 文件删除漏洞简介 167
    8.4.2 文件删除漏洞挖掘经验 168 
    8.4.3 实验∶74CMS 3.0文件删除漏洞审计 168 
    8.5 文件操作漏洞防御 170
    小结 171
    习题 171
    
    单元9 XXE与SSRF漏洞审计 174
    9.1 XXE漏洞挖掘 175
    9.1.1 XXE漏洞简介 175
    9.1.2 XXE漏洞挖掘方法 175 
    9.2 XXE漏洞分类 175 
    9.3 XXE漏洞防御 177 
    9.4 XXE审计CMS实验 177 
    9.5 SSRF漏洞挖掘 180
    9.5.1 SSRF漏洞简介 180 
    9.5.2 SSRF漏洞挖掘经验 180 
    9.6 SSRF漏洞分类 181
    9.6.1 CURL引起的SSRF 181 
    9.6.2 file_get_contents引起的SSRF 182 
    9.6.3 fsocketopen造成的SSRF 182 
    9.7 SSRF漏洞绕过 183 
    9.8 SSRF漏洞防御 183 
    9.9 SSRF审计CMS实验 184 
    小结 185 
    习题 186
    单元10 变量覆盖与反序列化漏洞审计 188 
    10.1 变量覆盖漏洞挖掘 189
    10.1.1 变量覆盖漏洞简介 189 
    10.1.2 变量覆盖漏洞审计经验 189 
    10.1.3 变量覆盖漏洞防御 189
    10.2 变量覆盖漏洞案例 190
    10.2.1 extract()函数使用不当 190 
    10.2.2 parse str()函数使用不当 191 
    10.2.3 import_request_variables()函数使用不当 191 
    10.2.4 全局变量覆盖 192 
    10.2.5 $变量覆盖 193 
    10.3 变量覆盖审计CMS实验 194 
    10.4 反序列化漏洞 196
    10.4.1 序列化介绍 196
    10.4.2 反序列化漏洞介绍 198
    10.5 反序列化漏洞CMS实验 200 
    小结 204
    习题 204
    单元11 业务功能审计 207
    11.1 验证码功能漏洞 208
    11.1.1 验证码功能介绍 208 
    11.1.2 验证码常见安全问题 208 
    11.1.3 验证码绕过方式 209 
    11.1.4 实验∶验证码功能漏洞导致任意用户注册实践 212
    11.2 密码重置功能漏洞 214
    11.2.1 密码重置功能介绍 214 
    11.2.2 密码重置功能的常见案例 214 
    11.2.3 密码重置功能防御方法 218 
    11.2.4 实验∶任意用户密码重置 218 
    11.3 交易支付功能漏洞 222
    11.3.1 交易支付功能漏洞介绍 222 
    11.3.2 交易支付功能漏洞挖掘 223 
    11.3.3 交易支付功能常见安全问题 223 
    11.3.4 交易支付功能防御方法 225
    小结 225
    习题 226
    单元12 YXCMS审计 228
    12.1 审计前准备 229
    12.2 留言板存储型XSS分析 232 
    12.3 碎片管理SQL注入漏洞分析 234 
    12.4 任意文件操作漏洞分析 236
    12.4.1 YMCMS任意文件删除 236 
    12.4.2 YMCMS任意文件写入 236
    小结 237
    习 题 238
    单元13 Java代码审计 239
    13.1 Java代码审计入门 240 
    13.1.1 Java EE介绍 240 
    13.1.2 Java代码审计基础 241 
    13.2 Java代码中的SQL注入漏洞 244
    13.2.1 JDBC的SQL注入 244 
    13.2.2 Mybatis的SQL注入 245 
    13.2.3 Java的SQL注入漏洞防御 247 
    13.2.4 OFCMS平台SQL注入漏洞分析 249
    13.3 Java代码中的XSS漏洞 250
    13.3.1 Java中的XSS漏洞简介 250 
    13.3.2 Java中XSS漏洞防御 253 
    13.3.3 JEESNS平台XSS漏洞分析 254 
    13.4 Java命令执行漏洞 256
    13.4.1 Java中的命令执行漏洞简介 256 
    13.4.2 Java中命令执行漏洞防御 258 
    13.5 Java文件操作漏洞 258
    13.5.1 Java文件上传漏洞 258
    13.5.2 Java文件读取漏洞 261 
    13.5.3 Java文件删除漏洞 262 
    13.5.4 MCMS平台文件上传漏洞分析 .263
    13.6 Java代码中的SSRF漏洞 264
    13.6.1 Java中的SSRF漏洞简介 264 
    13.6.2 Java中的SSRF漏洞防御 266 
    13.6.3 Hawtio平台SSRF漏洞分析 266 
    小结 268 
    习题 268
    单元14 Python框架安全 271
    14.1 Django框架概述 272
    14.1.1 Django框架简介 272 
    14.1.2 实验∶ Django搭建 274
    14.2 Django框架常见漏洞 276
    14.2.1 Django中的XSS漏洞 276 
    14.2.2 Django的XSS案例 278 
    14.2.3 Django中的CSRF漏洞 281 
    14.2.4 Django中的SQL注入漏洞 282 
    14.2.5 Django中的格式化字符串漏洞 282 
    14.2.6 Django中的其他漏洞 284 
    14.3 Flask框架常见漏洞 284
    14.3.1 Flask框架介绍 284 
    14.3.2 Flask中的SSTI漏洞 286 
    14.4 Tornado框架常见漏洞 288
    14.4.1 Tornado框架介绍 288 
    14.4.2 Tornado中任意文件读取漏洞 289
    小结 292 
    习题 292
    附录A 相关术语 295
    附录B 各单元习题参考答案 296
    参考文献 299
  • 胡前伟,密码学硕士,北京鸿腾智能科技有限公司资深网络安全专家。
    
    时瑞鹏,现为天津职业大学电信学院教师,副教授。2009年至今,担任天津市中职技能大赛计算机相关赛项专家,并担任天津市代表队教练工作。
    
    李华风,湖北大学计算机系统分析与集成硕士,武汉市财政学校高级讲师,硬件工程师。
  • (1)代码审计是一种以发现程序错误、安全漏洞和违反程序规范为目标的源代码分析技术。
    
    (2)本书是校企合作开发的教材,注重所述内容的可操作性和实用性。