Web攻防之业务安全实战指南

Web攻防之业务安全实战指南 pdf epub mobi txt 电子书 下载 2025

陈晓光 胡兵 张作峰 等 著
图书标签:
  • Web安全
  • 业务安全
  • 渗透测试
  • 漏洞分析
  • 安全实战
  • 攻防技术
  • Web攻防
  • 应用安全
  • 安全开发
  • 威胁情报
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121335815
版次:1
商品编码:12306251
包装:平装
开本:16开
出版时间:2018-03-01
用纸:胶版纸
页数:220
字数:280000
正文语种:中文

具体描述

产品特色

编辑推荐

适读人群 :本书比较适合作为企业专职安全人员、研发人员、普通高等院校网络空间安全学科的教学用书和参考书,以及作为网络安全爱好者的自学用书。

★ 本书得到了诸多专家推荐,严寒冰,徐凯,任望,陈新龙,余弦,白掌门,袁劲松……

★ 企业经营的核心命脉是业务,一切以业务可持续发展为优先安全保障

★ 本书立足于实践,再现了典型业务安全场景,总结了业务安全风险评估的过程和方法

★ 对于业务及开发人员来说本书可以让你的团队开发出的业务更安全、更可靠

★ 本书作者长期从事网络安全漏洞分析的相关工作,经验非常丰富


内容简介

★业务安全漏洞作为常见的Web安全漏洞,在各大漏洞平台时有报道,本书是一本从原理到案例分析,系统性地介绍这门技术的书籍。撰写团队具有10年大型网站业务安全测试经验,成员们对常见业务安全漏洞进行梳理,总结出了全面、详细的适用于电商、银行、金融、证券、保险、游戏、社交、招聘等业务系统的测试理论、工具、方法及案例。


★本书共15章,包括理论篇、技术篇和实践篇。理论篇首先介绍从事网络安全工作涉及的相关法律法规,请大家一定要做一个遵纪守法的白帽子,然后介绍业务安全引发的一些安全问题和业务安全测试相关的方法论,以及怎么去学好业务安全。技术篇和实践篇选取的内容都是这些白帽子多年在电商、金融、证券、保险、游戏、社交、招聘、O2O等不同行业、不同的业务系统存在的各种类型业务逻辑漏洞进行安全测试总结而成的,能够帮助读者理解不同行业的业务系统涉及的业务安全漏洞的特点。具体来说,技术篇主要介绍登录认证模块测试、业务办理模块测试、业务授权访问模块测试、输入/输出模块测试、回退模块测试、验证码机制测试、业务数据安全测试、业务流程乱序测试、密码找回模块测试、业务接口模块调用测试等内容。实践篇主要针对技术篇中的测试方法进行相关典型案例的测试总结,包括账号安全案例总结、密码找回案例总结、越权访问案例、OAuth 2.0案例总结、在线支付安全案例总结等。


★通过对本书的学习,读者可以很好地掌握业务安全层面的安全测试技术,并且可以协助企业规避业务安全层面的安全风险。本书比较适合作为企业专职安全人员、研发人员、普通高等院校网络空间安全学科的教学用书和参考书,以及作为网络安全爱好者的自学用书。

作者简介

★陈晓光,恒安嘉新(北京)科技股份公司执行总裁,资深安全专家,毕业于北京邮电大学信息安全专业。长期从事网络与信息安全方面的技术研究、项目管理和市场拓展工作。曾主导和参与多项重大国家标准、国家863 项目和242 安全课题;建设了多个全国性安全系统工程;为电信、金融和政府等多个行业提供安全建议。在安全风险评估、安全管理体系、安全标准、移动互联网安全和通信安全等领域有着丰富的实践经验。拥有CISSP、CISA、ISO27001 LA 等多项国际安全从业资质。

★胡兵,恒安嘉新(北京)科技股份公司安全攻防与应急响应中心总经理。负责公司安全产品解决方案、安全攻防技术研究、安全咨询服务等工作。多年来,一直致力于安全攻防技术的研究,曾参与国家信息安全有关部门、各大电信运营商、高校多个课题研究项目。带领安全研究团队支撑“中国反网络病毒联盟平台ANVA”、“国家信息安全漏洞共享平台CNVD”运营工作,以及承担国家重要活动期间的安全保障工作。

★张作峰(Rce),恒安嘉新(北京)科技股份公司安全攻防与应急响应中心副总经理、轩辕攻防实验室团队负责人、安全专家、互联网白帽子,原启明星辰资深安全研究员。十余年网络安全服务、安全研究、应急保障工作经验,在职期间参与完成了多个大型安全服务、集成、安全课题项目,以及多次国家重要活动的网络安全应急保障任务。

精彩书评

★互联网安全问题带来的危害日益严重。本书作者长期从事网络安全漏洞分析的相关工作。全书贴近网络安全实际工作,系统地介绍了业务逻辑安全测试的相关技术。一经阅读,引人入胜。详细阅读本书的读者,一定会获益匪浅。

——国家互联网应急中心运行部主任 严寒冰


★随着网络安全的发展,越来越多的人开始关注注入、跨站、上传等Web 安全问题,鲜有专业人士对业务安全做深入的研究和总结,作者结合多年的实战经验详细介绍了从登录到业务流程再到越权访问等各个环节可能存在的业务安全问题,对网站开发人员和安全测试人员来说本书都是一本很好的教材。

——公安部第三研究所主任 徐凯


★近年来,业务安全日益成为网络安全的重要风险来源,业务安全也受到广泛关注,但其安全风险的测试与评估方法一直比较欠缺。本书立足于实践,再现了典型业务安全场景,总结了业务安全风险评估的过程和方法,推荐具有一定安全基础的人员阅读,同时也适合信息系统运营者参阅。

——中国信息安全测评中心系统评估处 任望


★企业经营的核心命脉是业务,一切以业务可持续发展为优先安全保障,基于业务做安全一直也都是安全专家的核心竞争力,此书清晰地阐述了做业务安全所需要的战略、战法,读起来通俗易懂,可操作性强,值得拥有。

——威客安全董事长兼CEO 陈新龙


★这本书以业务安全测试为出发点,由浅入深实践了业务各环节的安全攻防。对于安全攻防人员来说是一本很值得参考的书籍;对于业务及开发人员来说这本书里的实践可以让你的团队开发出的业务更安全、更可靠。

——Joinsec 创始人 余弦


★非常实用的一本书,堪称网络安全技术人员的宝典!该书详细介绍了各种类型的互联网业务漏洞如何复现和利用,给出了翔实有效的修复建议,同时又结合了大量实际案例,很有借鉴与启发意义。

——补天漏洞响应平台 白掌门


★攻防之战永不停歇,在与黑色产业的对抗中,安全从业者需要不断学习新的知识和技能,本书介绍的业务安全知识正好补充了传统安全的缺失部分。

——漏洞盒子创始人 袁劲松


目录

★理论篇
第1章 网络安全法律法规 2
第2章 业务安全引发的思考 8
2.1 行业安全问题的思考 8
2.2 如何更好地学习业务安全 9
第3章 业务安全测试理论 11
3.1 业务安全测试概述 11
3.2 业务安全测试模型 12
3.3 业务安全测试流程 13
3.4 业务安全测试参考标准 18
3.5 业务安全测试要点 18
★技术篇
第4章 登录认证模块测试 22
4.1 暴力破解测试 22
4.1.1 测试原理和方法 22
4.1.2 测试过程 22
4.1.3 修复建议 30
4.2 本地加密传输测试 30
4.2.1 测试原理和方法 30
4.2.2 测试过程 30
4.2.3 修复建议 32
4.3 Session测试 32
4.3.1 Session会话固定测试 32
4.3.2 Seesion会话注销测试 35
4.3.3 Seesion会话超时时间测试 39
4.4 Cookie仿冒测试 42
4.4.1 测试原理和方法 42
4.4.2 测试过程 42
4.4.3 修复建议 45
4.5 密文比对认证测试 45
4.5.1 测试原理和方法 45
4.5.2 测试过程 45
4.5.3 修复建议 48
4.6 登录失败信息测试 48
4.6.1 测试原理和方法 48
4.6.2 测试过程 49
4.6.3 修复建议 50
第5章 业务办理模块测试 51
5.1 订单ID篡改测试 51
5.1.1 测试原理和方法 51
5.1.2 测试过程 51
5.1.3 修复建议 55
5.2 手机号码篡改测试 55
5.2.1 测试原理和方法 55
5.2.2 测试过程 56
5.2.3 修复建议 57
5.3 用户ID篡改测试 58
5.3.1 测试原理和方法 58
5.3.2 测试过程 58
5.3.3 修复建议 60
5.4 邮箱和用户篡改测试 60
5.4.1 测试原理和方法 60
5.4.2 测试过程 61
5.4.3 修复建议 62
5.5 商品编号篡改测试 63
5.5.1 测试原理和方法 63
5.5.2 测试过程 63
5.5.3 修复建议 65
5.6 竞争条件测试 66
5.6.1 测试原理和方法 66
5.6.2 测试过程 67
5.6.3 修复建议 69
第6章 业务授权访问模块 70
6.1 非授权访问测试 70
6.1.1 测试原理和方法 70
6.1.2 测试过程 70
6.1.3 修复建议 71
6.2 越权测试 72
6.2.1 测试原理和方法 72
6.2.2 测试过程 72
6.2.3 修复建议 76
第7章 输入/输出模块测试 77
7.1 SQL注入测试 77
7.1.1 测试原理和方法 77
7.1.2 测试过程 78
7.1.3 修复建议 84
7.2 XSS测试 84
7.2.1 测试原理和方法 84
7.2.2 测试过程 85
7.2.3 修复建议 88
7.3 命令执行测试 89
7.3.1 测试原理和方法 89
7.3.2 测试过程 89
7.3.3 修复建议 91
第8章 回退模块测试 92
8.1 回退测试 92
8.1.1 测试原理和方法 92
8.1.2 测试过程 92
8.1.3 修复建议 93
第9章 验证码机制测试 94
9.1 验证码暴力破解测试 94
9.1.1 测试原理和方法 94
9.1.2 测试过程 94
9.1.3 修复建议 97
9.2 验证码重复使用测试 97
9.2.1 测试原理和方法 97
9.2.2 测试过程 98
9.2.3 修复建议 100
9.3 验证码客户端回显测试 101
9.3.1 测试原理和方法 101
9.3.2 测试过程 101
9.3.3 修复建议 104
9.4 验证码绕过测试 104
9.4.1 测试原理和方法 104
9.4.2 测试过程 104
9.4.3 修复建议 106
9.5 验证码自动识别测试 106
9.5.1 测试原理和方法 106
9.5.2 测试过程 107
9.5.3 修复建议 111
第10章 业务数据安全测试 112
10.1 商品支付金额篡改测试 112
10.1.1 测试原理和方法 112
10.1.2 测试过程 112
10.1.3 修复建议 115
10.2 商品订购数量篡改测试 115
10.2.1 测试原理和方法 115
10.2.2 测试过程 115
10.2.3 修复建议 120
10.3 前端JS限制绕过测试 121
10.3.1 测试原理和方法 121
10.3.2 测试过程 121
10.3.3 修复建议 123
10.4 请求重放测试 123
10.4.1 测试原理和方法 123
10.4.2 测试过程 123
10.4.3 修复建议 125
10.5 业务上限测试 126
10.5.1 测试原理和方法 126
10.5.2 测试过程 126
10.5.3 修复建议 128
第11章 业务流程乱序测试 129
11.1 业务流程绕过测试 129
11.1.1 测试原理和方法 129
11.1.2 测试过程 129
11.1.3 修复建议 133
第12章 密码找回模块测试 134
12.1 验证码客户端回显测试 134
12.1.1 测试原理和方法 134
12.1.2 测试流程 134
12.1.3 修复建议 137
12.2 验证码暴力破解测试 137
12.2.1 测试原理和方法 137
12.2.2 测试流程 137
12.2.3 修复建议 140
12.3 接口参数账号修改测试 140
12.3.1 测试原理和方法 140
12.3.2 测试流程 141
12.3.3 修复建议 144
12.4 Response状态值修改测试 144
12.4.1 测试原理和方法 144
12.4.2 测试流程 144
12.4.3 修复建议 147
12.5 Session覆盖测试 147
12.5.1 测试原理和方法 147
12.5.2 测试流程 148
12.5.3 修复建议 150
12.6 弱Token设计缺陷测试 150
12.6.1 测试原理和方法 150
12.6.2 测试流程 151
12.6.3 修复建议 153
12.7 密码找回流程绕过测试 153
12.7.1 测试原理和方法 153
12.7.2 测试流程 154
12.7.3 修复建议 157
第13章 业务接口调用模块测试 158
13.1 接口调用重放测试 158
13.1.1 测试原理和方法 158
13.1.2 测试过程 158
13.1.3 修复建议 160
13.2 接口调用遍历测试 160
13.2.1 测试原理和方法 160
13.2.2 测试过程 161
13.2.3 修复建议 166
13.3 接口调用参数篡改测试 167
13.3.1 测试原理和方法 167
13.3.2 测试过程 167
13.3.3 修复建议 169
13.4 接口未授权访问/调用测试 169
13.4.1 测试原理和方法 169
13.4.2 测试过程 170
13.4.3 修复建议 172
13.5 Callback自定义测试 172
13.5.1 测试原理和方法 172
13.5.2 测试过程 173
13.5.3 修复建议 177
13.6 WebService测试 177
13.6.1 测试原理和方法 177
13.6.2 测试过程 177
13.6.3 修复建议 184
★实践篇
第14章 账号安全案例总结 186
14.1 账号安全归纳 186
14.2 账号安全相关案例 187
14.1.1 账号密码直接暴露在互联网上 187
14.1.2 无限制登录任意账号 189
14.1.3 电子邮件账号泄露事件 192
14.1.4 中间人攻击 195
14.1.5 撞库攻击 197
14.3 防范账号泄露的相关手段 199
第15章 密码找回安全案例总结 200
15.1 密码找回凭证可被暴力破解 200
15.1.1 某社交软件任意密码修改案例 201
15.2 密码找回凭证直接返回给客户端 203
15.2.1 密码找回凭证暴露在请求链接中 204
15.2.2 加密验证字符串返回给客户端 205
15.2.3 网页源代码中隐藏着密保答案 206
15.2.4 短信验证码返回给客户端 207
15.3 密码重置链接存在弱Token 209
15.3.1 使用时间戳的md5作为密码重置Token 209
15.3.2 使用服务器时间作为密码重置Token 210
15.4 密码重置凭证与用户账户关联不严 211
15.4.1 使用短信验证码找回密码 212
15.4.2 使用邮箱Token找回密码 213
15.5 重新绑定用户手机或邮箱 213
15.5.1 重新绑定用户手机 214
15.5.2 重新绑定用户邮箱 215
15.6 服务端验证逻辑缺陷 216
15.6.1 删除参数绕过验证 217
15.6.2 邮箱地址可被操控 218
15.6.3 身份验证步骤可被绕过 219
15.7 在本地验证服务端的返回信息――修改返回包绕过验证 221
15.8 注册覆盖――已存在用户可被重复注册 222
15.9 Session覆盖――某电商网站可通过Session覆盖方式重置他人密码 223
15.10 防范密码找回漏洞的相关手段 225
第16章 越权访问安全案例总结 227
16.1 平行越权 227
16.1.1 某高校教务系统用户可越权查看其他用户个人信息 227
16.1.2 某电商网站用户可越权查看或修改其他用户信息 229
16.1.3 某手机APP普通用户可越权查看其他用户个人信息 232
16.2 纵向越权 233
16.2.1 某办公系统普通用户权限越权提升为系统权限 233
16.2.2 某中学网站管理后台可越权添加管理员账号 235
16.2.3 某智能机顶盒低权限用户可越权修改超级管理员配置信息 240
16.2.4 某Web防火墙通过修改用户对应菜单类别可提升权限 244
16.3 防范越权访问漏洞的相关手段 247
第17章 OAuth 2.0安全案例总结 248
17.1 OAuth 2.0认证原理 248
17.2 OAuth 2.0漏洞总结 250
17.2.1 某社交网站CSRF漏洞导致绑定劫持 250
17.2.2 某社区劫持授权 251
17.3 防范OAuth 2.0漏洞的相关手段 253
第18章 在线支付安全案例总结 254
18.1 某快餐连锁店官网订单金额篡改 254
18.2 某网上商城订单数量篡改 256
18.3 某服务器供应商平台订单请求重放测试 257
18.4 某培训机构官网订单其他参数干扰测试 259
18.5 防范在线支付漏洞的相关手段 261

精彩书摘

3.3 业务安全测试流程


业务安全测试流程总体上分为七个阶段,前期工作主要以测试准备和业务调研为主,通过收集并参考业务系统相关设计文档和实际操作,与相关开发人员沟通、调研等方式熟悉了解被测系统业务内容和流程,然后在前期工作的基础上,根据业务类型进行业务场景建模,并把重要业务系统功能拆分成待测试的业务模块,进而对重要业务功能的各个业务模块进行业务流程梳理,之后对梳理后的业务关键点进行风险识别工作,这也是业务测试安全最重要的关键环节,最终根据风险点设计相应的测试用例,开展测试工作并最终输出测试报告。具体业务安全测试流程如图3-2所示。


流程一:测试准备

准备阶段主要包括对业务系统的前期熟悉工作,以了解被测试业务系统的数量、规模和场景等内容。针对白盒性质的测试,可以结合相关开发文档去熟悉相关系统业务;针对黑盒测试,可通过实际操作还原业务流程的方式理解业务。


流程二:业务调研

业务调研阶段主要针对业务系统相关负责人进行访谈调研,了解业务系统的整体情况,包括部署情况、功能模块、业务流程、数据流、业务逻辑以及现有的安全措施等内容。根据以往测试实施经验,在业务调研前可先设计访谈问卷,访谈后可能会随着对客户业务系统具体情况了解的深入而不断调整、更新问卷(黑盒测试此步骤可忽略)。


流程三:业务场景建模

针对不同行业、不同平台的业务系统,如电商、银行、金融、证券、保险、游戏、社交、招聘等业务系统,识别出其中的高风险业务场景进行建模。以电商系统为例,如图3-3所示为业务场景建模模型图。


流程四:业务流程梳理

建模完成后需要对重要业务场景的各个业务模块逐一进行业务流程梳理,从前台和后台、业务和支撑系统等4个不同维度进行分析,识别各业务模块的业务逻辑、业务数据流和功能字段等。

业务模块的流程梳理主要遵循以下原则:

√ 区分业务主流程和分支流程,业务梳理工作是围绕主流程进行分析的,而主流程一定是核心业务流程,业务流程重点梳理的对象首先应放在核心主流程上,务必梳理出业务关键环节;

√ 概括归纳业务分支流程,业务分支流程往往存在通用点,可将具有业务相似性的分支流程归纳成某一类型的业务流程,无须单独对其进行测试;

√ 识别业务流程数据信息流,特别是业务数据流在交互方双方之间传输的先后顺序、路径等;

√ 识别业务数据流功能字段,识别数据流中包含的重要程度不等的信息,理解这些字段的含义有助于下阶段风险点分析。

如图3-4所示是针对某电商类网站的用户登录功能的业务流程梳理图。

通过业务流程的各个阶段梳理出业务流程各个关键环节点,如图3-5所示。


流程五:业务风险点识别

在完成前期不同维度的业务流程梳理工作后,针对前台业务应着重关注用户界面操作每一步可能的逻辑风险和技术风险;针对后台业务应着重关注数据安全、数据流转及处理的日志和审计。

业务风险点识别应主要关注以下安全风险内容。


(1)业务环节存在的安全风险

业务环节存在的安全风险指的是业务使用者可见的业务存在的安全风险,如注册、登录和密码找回等身份认证环节,是否存在完善的验证码机制、数据一致性校验机制、Session和Cookie校验机制等,是否能规避验证码绕过、暴利破解和SQL注入等漏洞。


(2)支持系统存在的安全风险

支持系统存在的安全风险,如用户访问控制机制是否完善,是否存在水平越权或垂直越权漏洞。系统内加密存储机制是否完善,业务数据是否明文传输。系统使用的业务接口是否可以未授权访问/调用,是否可以调用重放、遍历,接口调用参数是否可篡改等。


(3)业务环节间存在的安全风险

业务环节间存在的安全风险,如系统业务流程是否存在乱序,导致某个业务环节可绕过、回退,或某个业务请求可以无限重放。业务环节间传输的数据是否有一致性校验机制,是否存在业务数据可被篡改的风险。


(4)支持系统间存在的安全风险

支持系统间存在的安全风险,如系统间数据传输是否加密、系统间传输的参数是否可篡改。系统间输入参数的过滤机制是否完善,是否可能导致SQL注入、XSS跨站脚本和代码执行漏洞。


(5)业务环节与支持系统间存在的安全风险

业务环节与支持系统间存在的风险,如数据传输是否加密、加密方式是否完善,是否采用前端加密、简单MD5编码等不安全的加密方式。系统处理多线程并发请求的机制是否完善,服务端逻辑与数据库读写是否存在时序问题,导致竞争条件漏洞。系统间输入参数的过滤机制是否完善。

具体业务风险点识别示例如图3-6所示。


流程六:开展测试

对前期业务流程梳理和识别出的风险点,进行有针对性的测试工作。


流程七:撰写报告

最后是针对业务安全测试过程中发现的风险结果进行评价和建议,综合评价利用场景的风险程度和造成影响的严重程度,最终完成测试报告的撰写。


前言/序言

前 言


“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。


由于Web 2.0的兴起,基于Web环境的互联网应用越来越广泛,也让Web应用的安全技术日趋成熟。目前互联网上接连爆发的应用安全漏洞,让各大企业的安全人员、运维人员、研发及管理人员都不得不重视这一领域,并为之投入了大量的人力和物力。日渐成熟的防护产品和解决方案,让Web安全防护的整体环境有了很大的提升。互联网上的网站模板,大部分都自带了防SQL注入、跨站脚本等攻击的功能,传统的“工具党”、“小白”已很难再通过简单操作几个按钮就成功完成一次Web入侵。


随着互联网业务的不断发展,互联网上的商务活动也越来越多,所涉及的网络交易也越来越频繁,交易的数额也越来越庞大,引发的安全事件也越来越多。而这些安全事件的攻击者更倾向于利用业务逻辑层的安全漏洞,如互联网上曝光的“1元购买特斯拉”、“微信无限刷红包”、“支付宝熟人可重置登录密码”等业务安全层面的漏洞。基于传统的渗透测试方法很难发现这些业务逻辑层面的问题,这类问题往往又危害巨大,可能造成企业的资产损失和名誉受损,并且传统的安全防御设备和措施对业务安全漏洞防护收效甚微。


业务安全问题在互联网上也时有报道,不算新生事物,但目前缺乏一套体系化的介绍这门技术的书籍。我们通过多年的不同行业的安全服务经验积累了大量的业务安全方面的经验,于是萌生了编写这本书的想法,把我们所有沉淀的业务安全测试经验分享给爱好网络安全事业的白帽子们,让大家一起成长,共同为国家网络安全事业贡献绵薄之力。


本书的撰写者均为轩辕攻防实验室白帽子,这些白帽子具备多年的业务安全测试经验,同时他们在国家信息安全漏洞共享平台(CNVD)报送过很多原创漏洞(2016年轩辕攻防实验室报送原创漏洞排名第二)。这些白帽子平时低调做人、高调做事,听说要编写这本书时,大家群情激奋,热烈响应,牺牲了很多的个人休息时间,经过了近一年的努力才总结完成了全面的、详细的可以适用于不同行业和不同业务系统的业务安全测试理论、工具、方法及案例。在此也感谢所有参与撰写本书的这些默默无闻,不求名、不逐利、默默分享的白帽子。在编写本书的过程中,我们也在互联网上发现了很多关于业务安全方面的经典案例,并选取了几个非常不错且比较典型的案例,经过我们整理总结后分享给各位读者,有的案例原作者已经联系上了,有个别的也无从联系了,在此也对分享这些经典案例且默默在互联网上耕耘和贡献的白帽子表示衷心的感谢和发自内心的致敬。


在内容甄选时,抛开了一些纯理论的内容,书中选取的场景案例多是作者在工作中实际遇到的问题加以改造的,目的是让读者通过对本书的学习,掌握实用的业务安全测试技术,协助企业规避业务安全层面的安全风险。


本书共15章,包括理论篇、技术篇和实践篇。理论篇开篇首先介绍从事网络安全工作涉及的相关法律法规,请大家一定要做一个遵纪守法的白帽子,然后介绍业务安全引发的一些安全问题和业务安全测试相关的方法论及怎么去学好业务安全。技术篇和实践篇选取的内容都是这些白帽子多年在电商、金融、证券、保险、游戏、社交、招聘、O2O等不同行业、不同的业务系统存在的各种类型业务逻辑漏洞进行安全测试总结而成的,能够帮助读者理解不同行业的业务系统涉及的业务安全漏洞的特点。具体来说,技术篇主要介绍登录认证模块测试、业务办理模块测试、业务授权访问模块测试、输入/输出模块测试、回退模块测试、验证码机制测试、业务数据安全测试、业务流程乱序测试、密码找回模块测试、业务接口模块调用测试等内容。实践篇主要针对技术篇中的测试方法进行相关典型案例的测试总结,包括账号安全案例总结、密码找回案例总结、越权访问案例、OAuth 2.0案例总结、在线支付安全案例总结等。


通过对本书的学习读者可以很好地掌握业务安全层面的安全测试技术,并且可以协助企业规避业务安全层面的安全风险。本书比较适合作为企业专职安全人员、研发人员、普通高等院校网络空间安全学科的教学用书和参考书,以及作为网络安全爱好者的自学用书。


由于水平有限,书中难免有不妥之处,加之网络攻防技术纵深宽广,发展迅速,在内容取舍和编排上难免考虑不周全,诚请读者批评指正。



轩辕攻防实验室负责人 张作峰

2018年01月 于北京



《代码的迷宫:解构软件漏洞与安全防御》 在信息爆炸的时代,软件已渗透到我们生活的方方面面,从智能手机的应用程序到支撑全球经济运转的复杂系统,都离不开代码的构建。然而,代码的精巧设计之下,也潜藏着无数的“迷宫”——那些被我们称为“漏洞”的缺陷,它们是黑客入侵的门户,是数据泄露的导火索,也是数字世界稳定的潜在威胁。本书并非专注于某个特定领域的攻防策略,而是旨在为读者构建一个全面而深入的软件安全知识体系,带领大家一步步走进代码的迷宫,理解漏洞产生的根源,掌握识别和利用漏洞的技巧,并最终学会如何构筑坚不可摧的安全防线。 第一部分:漏洞的基石——程序运行的内在机制 要理解漏洞,首先必须理解程序是如何工作的。本部分将从最底层的原理出发,深入剖析计算机程序在执行过程中的各个环节。 内存的奥秘: 我们将详细介绍内存的组织结构,包括栈(Stack)、堆(Heap)、全局区(Data Segment)和代码区(Text Segment)等,以及它们各自的生命周期和数据存储方式。理解这些概念对于理解缓冲区溢出、栈溢出、堆溢出等经典漏洞至关重要。我们会深入探讨指针的工作原理,以及野指针、悬垂指针等可能导致的内存安全问题。 数据表示与转换: 计算机内部的数据是如何表示的?整型、浮点型、字符串等数据类型在内存中是如何存储的?字符编码(如ASCII、UTF-8)的差异以及它们在不同场景下的转换,往往是导致一些意想不到漏洞的根源,例如中文乱码问题在安全方面的潜在风险。 指令的执行流程: CPU如何解析和执行指令?程序计数器(Program Counter)、栈指针(Stack Pointer)、基址指针(Base Pointer)在函数调用和返回过程中的作用是什么?理解这些汇编层面的细节,有助于我们深入理解函数调用栈的构造,从而掌握如何操纵程序执行流程。 操作系统服务: 程序并非独立运行,它需要操作系统的支持。我们将探讨操作系统提供的关键服务,如进程管理、线程管理、文件系统、网络通信等。理解这些系统调用(System Calls)的工作机制,能够帮助我们识别利用操作系统接口时可能存在的安全隐患。 第二部分:漏洞的扫描与分析——探寻代码的薄弱环节 在了解了程序运行的基本原理后,本部分将聚焦于如何主动地寻找和分析代码中的漏洞。 静态分析的智慧: 静态分析是在不运行程序的情况下,对源代码或二进制文件进行分析,以发现潜在漏洞。我们将介绍各种静态分析技术,包括: 模式匹配与启发式规则: 基于已知的漏洞模式和安全编码实践,通过正则表达式或自定义规则来扫描代码。 数据流与控制流分析: 追踪程序中数据的流动和指令的执行路径,识别可能导致不安全操作的路径。 污点分析(Taint Analysis): 标记不可信的输入(“污点”),并追踪这些污点在程序中的传播,以发现是否会到达敏感操作。 工具集介绍: 推荐和介绍一些常用的静态分析工具,例如SonarQube、Fortify、Coverity等,并演示如何使用它们来发现代码中的安全缺陷。 动态分析的实践: 动态分析是在程序运行过程中,通过监控其行为来发现漏洞。我们将深入探讨: 调试器的艺术: 掌握GDB、OllyDbg等调试器的使用,学会设置断点、单步执行、查看内存和寄存器状态,以及在运行时修改程序行为。 代码覆盖率与模糊测试(Fuzzing): 通过生成大量随机或半随机的输入数据,驱动程序运行,并记录代码的执行路径,以发现未被充分测试到的代码段,进而暴露潜在漏洞。我们将介绍多种模糊测试技术,如基于变异(Mutation-based)和基于生成(Generation-based)的模糊测试,并推荐一些主流的模糊测试工具,如AFL、LibFuzzer等。 运行时监控与插桩(Instrumentation): 通过在程序运行时插入额外的代码,来监控其行为,例如内存访问、函数调用、系统资源使用等,从而发现异常行为。Valgrind等工具将在这一环节进行详细介绍。 逆向工程的基础: 对于闭源软件或已编译的二进制文件,逆向工程是理解其内部工作机制和发现漏洞的有效手段。我们将介绍: 反汇编与反编译: 将机器码转换回汇编代码或高级语言代码,以便于分析。 二进制文件格式分析: 理解PE(Portable Executable)、ELF(Executable and Linkable Format)等文件格式的结构,有助于定位可疑代码段和数据段。 符号信息与调试信息: 如何利用或绕过程序中的符号信息来加速逆向过程。 第三部分:漏洞的原理与利用——攻破程序防线 在识别了潜在的漏洞点之后,本部分将深入剖析各种典型漏洞的原理,并演示如何利用它们来达到攻击目的。 内存损坏类漏洞: 缓冲区溢出(Buffer Overflow): 深入剖析栈溢出(Stack Overflow)和堆溢出(Heap Overflow)的原理,包括如何覆盖返回地址、修改函数指针、控制程序执行流。我们将讲解ROP(Return-Oriented Programming)和JOP(Jump-Oriented Programming)等高级利用技术。 格式化字符串漏洞(Format String Vulnerability): 了解`printf`族函数如何处理格式化字符串,以及如何利用它来读取任意内存、写入任意内存甚至执行代码。 整数溢出(Integer Overflow/Underflow): 探讨整数类型溢出在安全方面的潜在影响,例如绕过大小检查、导致缓冲区分配错误等。 use-after-free 和 double-free: 在内存已被释放后继续使用,或重复释放同一块内存,可能导致内存损坏和远程代码执行。 逻辑缺陷类漏洞: 越界访问(Out-of-Bounds Access): 数组越界、字符串越界等,可能导致读取敏感数据或覆盖重要信息。 竞争条件(Race Condition): 在并发环境下,多个线程或进程对共享资源的访问顺序不当,可能导致意想不到的后果。 权限绕过(Privilege Escalation): 攻击者如何利用程序中的逻辑缺陷,提升自身的权限,从而访问更高敏感度的资源。 不安全的对象反序列化(Insecure Deserialization): 在反序列化不受信任的数据时,可能导致远程代码执行。 注入类漏洞: 命令注入(Command Injection): 将恶意命令注入到程序执行的系统命令中。 SQL注入(SQL Injection): 将恶意SQL语句注入到应用程序的数据库查询中。 路径遍历(Path Traversal): 利用不当的文件路径处理,访问服务器上的任意文件。 XML外部实体注入(XXE): 利用XML解析器的漏洞,读取服务器上的文件或发起内部网络请求。 其他常见漏洞: 跨站脚本(XSS): 在Web应用程序中注入恶意脚本,并在用户浏览器中执行。 文件上传漏洞: 利用不当的文件上传处理,上传恶意文件并执行。 认证与授权绕过: 绕过程序的登录验证机制,或获得未授权的访问权限。 第四部分:安全加固与防御——筑牢数字世界的城墙 理解了如何发现和利用漏洞,本书的最后一部分将回归防御,教授读者如何从源头上消除漏洞,并有效地抵御攻击。 安全编码的最佳实践: 输入验证与过滤: 永远不要信任用户输入,并对其进行严格的验证和过滤。 最小权限原则: 程序运行时应以尽可能低的权限运行。 内存安全编码: 使用安全的内存管理函数,避免使用已知的危险函数。 避免硬编码敏感信息: 敏感信息应存储在安全的位置,并进行加密。 安全的字符串处理: 使用安全的字符串处理函数,注意缓冲区大小。 错误处理与日志记录: 详细而安全地处理错误,并记录足够的日志以便于审计。 编译器与运行时保护机制: 栈保护(Stack Canary/Stack Guard): 在函数返回地址前插入一个随机值,以检测栈溢出。 地址空间布局随机化(ASLR): 随机化程序在内存中的加载地址,增加攻击者的难度。 数据执行保护(DEP/NX Bit): 将数据段标记为不可执行,防止代码注入。 编译器的安全选项: 介绍GCC、Clang等编译器提供的各种安全编译选项。 代码审计与安全评审: 安全审计流程: 如何系统性地进行代码审计,关注关键的逻辑和数据流。 同行评审(Peer Review): 让其他开发者参与代码评审,发现潜在的安全问题。 安全测试与漏洞挖掘: 渗透测试(Penetration Testing): 模拟真实攻击场景,全面评估系统的安全性。 红队与蓝队演习: 在受控环境中进行攻防对抗,提升实战能力。 安全开发生命周期(SDL): 将安全考虑融入软件开发的每一个阶段,从需求分析到部署维护。 应对未知威胁: 探讨当前安全领域的一些前沿技术和研究方向,以及如何构建具有弹性、能够应对未知威胁的系统。 《代码的迷宫:解构软件漏洞与安全防御》将带领读者从底层原理到实践应用,从攻击者的视角到防御者的立场,全面而深入地理解软件安全。无论你是希望提升自己代码安全性的开发者,还是对网络安全充满好奇的爱好者,本书都将是你探索代码迷宫、构建安全数字世界的宝贵向导。

用户评价

评分

老实说,我当初买《Web攻防之业务安全实战指南》主要是冲着“实战”两个字去的,我是一名资深的安全研究员,每天都在跟各种高难度的技术漏洞打交道,对于一些偏理论的书籍已经有些审美疲劳了。这本书的出现,确实给我带来了耳目一新的感觉。它没有陷入空泛的理论讨论,而是将目光聚焦在互联网业务中最容易被忽视,但也最能产生实际影响的业务安全层面。书中对各种场景下的业务逻辑漏洞进行了深度剖析,比如在电商、金融、社交等不同类型的业务中,攻击者是如何利用业务流程的缺陷来牟利的。我尤其欣赏书中关于“数据校验与信任机制”的讲解,作者通过对不同业务场景下数据校验的细微差别进行了深入分析,并给出了非常具有建设性的建议。这不仅仅是停留在技术层面的数据过滤,更是上升到了对业务逻辑的理解和信任的层面。另外,书中关于“安全审计与监控”的内容也极具价值,它提供了一套完整的思路,如何通过对业务数据的分析来识别潜在的攻击行为。总的来说,这本书的视角非常独特,它能够帮助我们从更宏观、更贴近业务的维度去理解和解决安全问题,而不是仅仅局限于狭窄的技术领域。对于我们这种需要深入一线去解决实际安全问题的从业者来说,这本书无疑是一本不可多得的参考资料,能够极大地拓宽我们的思路,提升我们解决复杂业务安全问题的能力。

评分

这本书真的是彻底颠覆了我对网络安全的认知,以前总觉得Web攻防离我这种做业务开发的程序员很遥远,不是什么黑客的专属领域。但读了《Web攻防之业务安全实战指南》后,我才意识到,原来我们日常接触的业务逻辑漏洞才是最容易被攻击者盯上的地方,而且攻击手法也比我想象的要细致得多。书中通过大量贴近实际的案例,详细剖析了诸如越权访问、信息泄露、支付绕过、业务逻辑篡改等各种常见的业务安全问题。让我印象最深刻的是关于“用户行为分析”的那一章,作者用非常生动的语言讲解了如何通过监控和分析用户在系统中的一系列操作,来发现异常行为,从而提前预警和阻断攻击。这不仅仅是技术层面的讲解,更是从业务流程的角度出发,教你如何构建一个更健壮、更安全的业务系统。以前总是被各种技术名词搞得头晕,这本书的讲解方式非常接地气,很多时候会让你产生“原来是这样”的恍然大悟的感觉。而且,它不是简单地罗列漏洞,更重要的是提供了很多切实可行的防御措施和设计思路。读完后,感觉自己对业务安全有了一个系统性的、深入的理解,也更加清楚自己在开发过程中需要注意哪些细节,如何从源头上避免潜在的安全风险。这绝对是一本值得每个互联网从业者,特别是业务开发者和产品经理,认真研读的宝藏书籍。

评分

我一直觉得,做安全工作,不仅要有扎实的技术功底,更要懂业务。而《Web攻防之业务安全实战指南》这本书,恰恰完美地结合了这两点。它没有像很多安全书籍那样,只是枯燥地讲解各种技术细节,而是将安全威胁置于具体的业务场景中进行分析。我是一名互联网公司的产品经理,平时主要负责用户增长和产品迭代,对于安全方面虽然有一定认知,但总觉得隔着一层。这本书的出现,让我有机会深入了解,原来我们在产品设计和业务流程中,可能存在的种种“不经意”的疏忽,在攻击者眼中,却可能是巨大的安全隐患。书中对“身份验证与权限管理”的讲解,让我醍醐灌顶。它不仅分析了技术层面的弱点,更重要的是,它从用户体验和业务流程的角度,探讨了如何设计更安全、也更方便用户使用的身份验证机制。我特别喜欢书中关于“风险评估与度量”的部分,它提供了一套非常实用的方法论,帮助我们量化业务安全风险,并根据风险等级来制定相应的防护策略。这对于我们产品经理来说,非常有价值,可以帮助我们更好地平衡产品功能、用户体验和安全需求。读完这本书,我感觉自己对业务安全有了更深刻的理解,也更加清楚自己在产品设计和团队协作中,应该如何有效地推动安全建设。

评分

这本书的价值,在于它把“看不见”的安全风险,变成了“看得见”的实操。作为一名从事一线开发工作的工程师,我过去更多地关注代码的健壮性和功能的实现,对于业务逻辑层面的安全漏洞,往往是在出了问题之后才开始补救。但《Web攻防之业务安全实战指南》这本书,就像给我打开了一扇新的大门。它非常细致地剖析了各种业务场景下的安全风险,而且重点放在了那些“难以察觉”的漏洞上。比如,书中对“数据篡改与伪造”的讲解,让我意识到,很多时候攻击并不需要高深的黑客技术,仅仅是对业务流程的深入理解,就能制造出看似完美的攻击。我印象最深刻的是书中关于“奖品兑换与活动薅羊毛”的案例分析,作者从用户行为、接口调用、数据交互等多个维度,层层剥茧,揭示了攻击者是如何一步步绕过业务规则,达到非法获利的目的。这本书的可贵之处在于,它不仅指出了问题,更重要的是提供了详细的解决思路和预防措施,而且这些措施都非常贴近实际开发和运维工作。读完之后,我感觉自己对代码的编写和接口的设计都有了新的认识,更加注重从业务逻辑的角度去审视代码的安全性,也更能主动地去发现和规避潜在的风险。这本书对于我们这种需要将理论付诸实践的开发者来说,是不可多得的宝藏。

评分

我是一名对网络安全充满好奇但技术基础相对薄弱的初学者,偶然间看到了《Web攻防之业务安全实战指南》这本书,抱着试一试的心态购入。一开始,我确实有些担心内容会过于晦涩难懂,但事实证明我的顾虑是多余的。作者的笔触非常细腻,循序渐进地引导读者进入业务安全的世界。从最基础的概念讲起,比如什么是业务逻辑漏洞,它与技术漏洞有什么区别,以及为什么业务安全如此重要。书中并没有一开始就抛出复杂的攻击代码,而是通过大量的图示和生活化的比喻,来解释抽象的安全原理。例如,在讲解“账户安全”时,作者用了一个非常有趣的例子,把用户的账户比作一扇门,而密码、验证码等就像门锁和钥匙,从这个角度切入,我立刻就明白了其中的关键。更重要的是,这本书不仅仅是“教你如何攻击”,更侧重于“如何防范”。它详细列举了各种常见的业务安全风险,并提供了详细的解决方案,这些方案往往与业务流程紧密结合,非常具有实践指导意义。我特别喜欢书中的“安全设计模式”部分,它提供了一套系统性的思考框架,帮助我在设计业务功能时就考虑安全因素,而不是事后补救。读完这本书,我不再对Web攻防感到恐惧,反而充满了信心,觉得自己也能掌握一些基本的安全防护技能,这对我来说是一个巨大的进步。

评分

还没有看希望,可以对自己有一些帮助,就是书本小了一些,先给个五星好评,到时候再追评吧。

评分

全是干货,看得懂,能上手,逻辑清晰,不讲废话,赞?

评分

学习python的Web开发,书是正品。书挺好的,还没来得及看

评分

不错不错不错不错不错不错

评分

送人的,感觉还行

评分

看来还是不适合我,我都看不懂

评分

不错不错不错不错不错不错不错

评分

挺全的,协议、语法、框架,数据库都介绍到了,适合入门。就是物流太慢啦!一周多

评分

东西很好,很方便,物流快。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有