img
share 分享

Web安全攻防:渗透测试实战指南

作者:徐焱, 李文轩

出版社:电子工业出版社

ISBN:9787121342837

VIP会员免费 (仅需0.8元/天) ¥ 44.5

温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!

电子书推荐

更多资源 展开

黑客攻防技术宝典:Web实战篇.pdf 评分:

内容简介 《黑客攻防技术宝典·Web实战篇》是探索和研究Web应用程序安全缺陷的实践指南。作者利用大量的实际案例、屏幕快照和示例代码,详细介绍了每一种Web应用程序弱点,并深入阐述了如何针对Web应用程序进行具体的渗透测试。《黑客攻防技术宝典·Web实战篇》从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的技巧和详细步骤,最后总结书中涵盖的主题。每章后还附有习题,便于读者巩固所学内容。 《黑客攻防技术宝典·Web实战篇》适用于各层次计算机安全和Web开发与管理领域的技术人员。 编辑推荐 《黑客攻防技术宝典·Web实战篇》由人民邮电出版社出版。 跟安全技术大师学习黑客攻防技术,全面分析Web应用程序安全漏洞,大量实例和代码片段。 越来越多的关键应用现在已经迁移到网站上,这些Web应用的安全已经成为各机构的重要挑战。知己知彼,方能百战不殆。只有了解Web应用程序中存在的可被利用的漏洞和攻击者所采用的攻击方法,才能更有效地确保Web安全。 《黑客攻防技术宝典·Web实战篇》是Web安全领域专家的经验结晶,系统阐述了如何针对Web应用程序展开攻击与反攻击,详细剖析了攻击时所使用的技巧、步骤和工具,条理清晰,内容全面,几乎涵盖了所有Web核心技术以及Web应用程序的核心功能,另外还为读者提供了作者自己开发的几个探查漏洞的工具,是一本难得一见的黑客技术实用宝典。 作者简介 作者:(英国) 斯图塔德 (Stuttard.D.) (英国) 平托 (Pinto.M.) 译者:石华耀 Dafydd Stuttard,世界知名的安全技术专家。著名Web应用攻击测试工具Burp Suite的开发者。以网名PortSwigger蜚声安全界。牛津大学博士,现任Next Generation Security Software公司资深安全顾问,主要负责Web应用程序安全。 第1章 Web应用程序安全与风险 1 1.1 Web应用程序的发展历程 1 1.1.1 Web应用程序的常见功能 2 1.1.2 Web应用程序的优点 3 1.2 Web应用程序安全 3 1.2.1 “本站点是安全的” 3 1.2.2 核心安全问题:用户可提交任意输入 5 1.2.3 关键问题因素 6 1.2.4 新的安全边界 7 1.2.5 Web应用程序安全的未来 8 1.3 小结 8 第2章 核心防御机制 9 2.1 处理用户访问 9 2.1.1 身份验证 10 2.1.2 会话管理 10 2.1.3 访问控制 11 2.2 处理用户输入 12 2.2.1 输入的多样性 12 2.2.2 输入处理方法 13 2.2.3 边界确认 14 2.2.4 多步确认与规范化 16 2.3 处理攻击者 17 2.3.1 处理错误 17 2.3.2 维护审计日志 18 2.3.3 向管理员发出警报 19 2.3.4 应对攻击 19 2.4 管理应用程序 20 2.5 小结 21 2.6 问题 21 第3章 Web应用程序技术 22 3.1 HTTP 22 3.1.1 HTTP请求 22 3.1.2 HTTP响应 23 3.1.3 HTTP方法 24 3.1.4 URL 25 3.1.5 HTTP消息头 26 3.1.6 cookie 27 3.1.7 状态码 28 3.1.8 HTTPS 29 3.1.9 HTTP代理 29 3.1.10 HTTP验证 29 3.2 Web功能 30 3.2.1 服务器端功能 30 3.2.2 客户端功能 32 3.2.3 状态与会话 35 3.3 编码方案 36 3.3.1 URL编码 36 3.3.2 Unicode编码 36 3.3.3 HTML编码 37 3.3.4 Base64编码 37 3.3.5 十六进制编码 38 3.4 下一步 38 3.5 问题 38 第4章 解析应用程序 39 4.1 枚举内容与功能 39 4.1.1 Web抓取 39 4.1.2 用户指定的抓取 41 4.1.3 发现隐藏的内容 43 4.1.4 应用程序页面与功能路径 50 4.1.5 发现隐藏的参数 51 4.2 分析应用程序 52 4.2.1 确定用户输入进入点 52 4.2.2 确定服务器端技术 53 4.2.3 确定服务器端功能 58 4.2.4 解析受攻击面 60 4.3 小结 60 4.4 问题 61 第5章 避开客户端控件 62 5.1 通过客户端传送数据 62 5.1.1 隐藏表单字段 62 5.1.2 HTTP cookie 64 5.1.3 URL参数 65 5.1.4 Referer消息头 65 5.1.5 模糊数据 66 5.1.6 ASP.NET ViewState 67 5.2 收集用户数据:HTML表单 70 5.2.1 长度限制 70 5.2.2 基于脚本的确认 71 5.2.3 禁用的元素 73 5.3 收集用户数据:厚客户端组件 74 5.3.1 Java applet 74 5.3.2 ActiveX控件 80 5.3.3 Shockwave Flash对象 84 5.4 安全处理客户端数据 87 5.4.1 通过客户传送数据 87 5.4.2 确认客户生成的数据 88 5.4.3 日志与警报 89 5.5 小结 89 5.6 问题 89 第6章 攻击验证机制 91 6.1 验证技术 91 6.2 验证机制设计缺陷 92 6.2.1 密码保密性不强 92 6.2.2 蛮力攻击登录 93 6.2.3 详细的失败消息 95 6.2.4 证书传输易受攻击 97 6.2.5 密码修改功能 98 6.2.6 忘记密码功能 99 6.2.7 “记住我”功能 101 6.2.8 用户伪装功能 102 6.2.9 证书确认不完善 104 6.2.10 非唯一性用户名 104 6.2.11 可预测的用户名 105 6.2.12 可预测的初始密码 105 6.2.13 证书分配不安全 106 6.3 验证机制执行缺陷 107 6.3.1 故障开放登录机制 107 6.3.2 多阶段登录机制中的缺陷 108 6.3.3 不安全的证书存储 110 6.4 保障验证机制的安全 111 6.4.1 使用可靠的证书 111 6.4.2 安全处理证书 111 6.4.3 正确确认证书 112 6.4.4 防止信息泄露 113 6.4.5 防止蛮力攻击 114 6.4.6 防止滥用密码修改功能 116 6.4.7 防止滥用账户恢复功能 116 6.4.8 日志、监控与通知 117 6.5 小结 117 6.6 问题 118 第7章 攻击会话管理 119 7.1 状态要求 119 7.2 会话令牌生成过程中的薄弱环节 122 7.2.1 令牌有一定含义 122 7.2.2 令牌可预测 124 7.3 会话令牌处理中的薄弱环节 130 7.3.1 在网络上泄露令牌 130 7.3.2 在日志中泄露令牌 133 7.3.3 令牌-会话映射易受攻击 135 7.3.4 会话终止易受攻击 136 7.3.5 客户暴露在令牌劫持风险之中 137 7.3.6 宽泛的cookie范围 138 7.4 保障会话管理的安全 140 7.4.1 生成强大的令牌 140 7.4.2 在整个生命周期保障令牌的安全 142 7.4.3 日志、监控与警报 144 7.5 小结 145 7.6 问题 145 第8章 攻击访问控制 147 8.1 常见漏洞 147 8.1.1 完全不受保护的功能 148 8.1.2 基于标识符的功能 149 8.1.3 多阶段功能 150 8.1.4 静态文件 150 8.1.5 访问控制方法不安全 151 8.2 攻击访问控制 151 8.3 保障访问控制的安全 154 8.4 小结 158 8.5 问题 158 第9章 代码注入 159 9.1 注入解释型语言 159 9.2 注入SQL 160 9.2.1 利用一个基本的漏洞 161 9.2.2 避开登录 163 9.2.3 查明SQL注入漏洞 164 9.2.4 注入不同的语句类型 166 9.2.5 UNION操作符 168 9.2.6 “指纹识别”数据库 172 9.2.7 提取有用的数据 172 9.2.8 利用ODBC错误消息(仅适用于MS-SQL) 177 9.2.9 避开过滤 180 9.2.10 二阶SQL注入 183 9.2.11 高级利用 184 9.2.12 SQL注入之外:扩大数据库攻击范围 193 9.2.13 SQL语法与错误参考 195 9.2.14 防止SQL注入 200 9.3 注入操作系统命令 202 9.3.1 例1:通过Perl注入 203 9.3.2 例2:通过ASP注入 204 9.3.3 查找OS命令注入漏洞 205 9.3.4 防止OS命令注入 207 9.4 注入Web脚本语言 208 9.4.1 动态执行漏洞 208 9.4.2 文件包含漏洞 210 9.4.3 防止脚本注入漏洞 211 9.5 注入SOAP 212 9.5.1 查找并利用SOAP注入 213 9.5.2 防止SOAP注入 214 9.6 注入XPath 214 9.6.1 破坏应用程序逻辑 215 9.6.2 谨慎XPath注入 216 9.6.3 盲目XPath注入 216 9.6.4 查找XPath注入漏洞 217 9.6.5 防止XPath注入 218 9.7 注入SMTP 218 9.7.1 操纵电子邮件消息头 218 9.7.2 SMTP命令注入 219 9.7.3 查找SMTP注入漏洞 221 9.7.4 防止SMTP注入 222 9.8 注入LDAP 222 9.8.1 注入查询属性 223 9.8.2 修改查询过滤器 224 9.8.3 查找LDAP注入漏洞 224 9.8.4 防止LDAP注入 225 9.9 小结 225 9.10 问题 225 第10章 利用路径遍历 227 10.1 常见漏洞 227 10.2 查找并利用路径遍历漏洞 228 10.2.1 确定攻击目标 228 10.2.2 探查路径遍历漏洞 229 10.2.3 避开遍历攻击障碍 231 10.2.4 利用遍历漏洞 234 10.3 防止路径遍历漏洞 234 10.4 小结 235 10.5 问题 236 第11章 攻击应用程序逻辑 237 11.1 逻辑缺陷的本质 237 11.2 现实中的逻辑缺陷 238 11.2.1 例1:欺骗密码修改功能 238 11.2.2 例2:直接结算 239 11.2.3 例3:修改保险单 240 11.2.4 例4:入侵银行 241 11.2.5 例5:擦除审计追踪 243 11.2.6 例6:规避交易限制 244 11.2.7 例7:获得大幅折扣 245 11.2.8 例8:避免转义 245 11.2.9 例9:滥用搜索功能 247 11.2.10 例10:利用调试消息 248 11.2.11 例11:与登录机制竞赛 249 11.3 避免逻辑缺陷 250 11.4 小结 251 11.5 问题 252 第12章 攻击其他用户 253 12.1 跨站点脚本 254 12.1.1 反射型XSS漏洞 254 12.1.2 保存型XSS漏洞 259 12.1.3 基于DOM的XSS漏洞 261 12.1.4 现实世界中的XSS攻击 262 12.1.5 链接XSS与其他攻击 264 12.1.6 XSS攻击有效载荷 265 12.1.7 XSS攻击的传送机制 270 12.1.8 查找并利用XSS漏洞 271 12.1.9 HttpOnly cookie与跨站点追踪 285 12.1.10 防止XSS攻击 287 12.2 重定向攻击 290 12.2.1 查找并利用重定向漏洞 291 12.2.2 防止重定向漏洞 294 12.3 HTTP消息头注入 294 12.3.1 利用消息头注入漏洞 295 12.3.2 防止消息头注入漏洞 297 12.4 框架注入 298 12.4.1 利用框架注入 298 12.4.2 防止框架注入 299 12.5 请求伪造 299 12.5.1 本站点请求伪造 299 12.5.2 跨站点请求伪造 301 12.6 JSON劫持 303 12.6.1 JSON 303 12.6.2 攻击JSON 304 12.6.3 查找JSON劫持漏洞 305 12.6.4 防止JSON劫持 306 12.7 会话固定 306 12.7.1 查找并利用会话固定漏洞 308 12.7.2 防止会话固定漏洞 309 12.8 攻击ActiveX控件 309 12.8.1 查找ActiveX漏洞 310 12.8.2 防止ActiveX漏洞 312 12.9 本地隐私攻击 312 12.9.1 持久性cookie 312 12.9.2 缓存Web内容 312 12.9.3 浏览历史记录 313 12.9.4 自动完成 313 12.9.5 防止本地隐私攻击 314 12.10 高级利用技巧 314 12.10.1 利用Ajax 314 12.10.2 反DNS Pinning 317 12.10.3 浏览器利用框架 319 12.11 小结 320 12.12 问题 321 第13章 定制攻击自动化 322 13.1 应用定制自动化攻击 322 13.2 枚举有效的标识符 323 13.2.1 基本步骤 323 13.2.2 探测“触点” 324 13.2.3 编写攻击脚本 325 13.2.4 JAttack 326 13.3 获取有用的数据 331 13.4 常见漏洞模糊测试 334 13.5 整合全部功能:Burp Intruder 337 13.6 小结 344 13.7 问题 345 第14章 利用信息泄露 346 14.1 利用错误消息 346 14.1.1 错误消息脚本 346 14.1.2 栈追踪 347 14.1.3 详尽的调试消息 348 14.1.4 服务器与数据库消息 349 14.1.5 使用公共信息 350 14.1.6 制造详尽的错误消息 351 14.2 收集公布的信息 351 14.3 使用推论 352 14.4 防止信息泄露 353 14.4.1 使用常规错误消息 353 14.4.2 保护敏感信息 354 14.4.3 尽量减少客户端信息泄露 354 14.5 小结 354 14.6 问题 355 第15章 攻击编译型应用程序 357 15.1 缓冲区溢出漏洞 357 15.1.1 栈溢出 358 15.1.2 堆溢出 358 15.1.3 “一位偏移”漏洞 359 15.1.4 查找缓冲区溢出漏洞 361 15.2 整数漏洞 362 15.2.1 整数溢出 362 15.2.2 符号错误 363 15.2.3 查找整数漏洞 363 15.3 格式化字符串漏洞 364 15.4 小结 365 15.5 问题 366 第16章 攻击应用程序架构 367 16.1 分层架构 367 16.1.1 攻击分层架构 368 16.1.2 保障分层架构的安全 370 16.2 共享主机与应用程序服务提供商 371 16.2.1 虚拟主机 372 16.2.2 共享的应用程序服务 372 16.2.3 攻击共享环境 373 16.2.4 保障共享环境的安全 376 16.3 小结 378 16.4 问题 378 第17章 攻击Web服务器 379 17.1 Web服务器配置缺陷 379 17.1.1 默认证书 379 17.1.2 默认内容 380 17.1.3 目录列表 383 17.1.4 危险的HTTP方法 384 17.1.5 Web服务器作为代理服务器 385 17.1.6 虚拟主机配置缺陷 387 17.1.7 保障Web服务器配置的安全 387 17.2 Web服务器软件漏洞 388 17.2.1 缓冲区溢出漏洞 388 17.2.2 路径遍历漏洞 389 17.2.3 编码与规范化漏洞 389 17.2.4 查找Web服务器漏洞 391 17.2.5 保障Web服务器软件的安全 392 17.3 小结 393 17.4 问题 393 第18章 查找源代码中的漏洞 394 18.1 代码审查方法 394 18.1.1 “黑盒”测试与“白盒”测试 394 18.1.2 代码审查方法 395 18.2 常见漏洞签名 396 18.2.1 跨站点脚本 396 18.2.2 SQL注入 397 18.2.3 路径遍历 397 18.2.4 任意重定向 398 18.2.5 OS命令注入 399 18.2.6 后门密码 399 18.2.7 本地代码漏洞 399 18.2.8 源代码注释 401 18.3 Java平台 401 18.3.1 确定用户提交的数据 401 18.3.2 会话交互 402 18.3.3 潜在危险的API 402 18.3.4 配置Java环境 405 18.4 ASP.NET 406 18.4.1 确定用户提交的数据 406 18.4.2 会话交互 407 18.4.3 潜在危险的API 407 18.4.4 配置ASP.NET环境 410 18.5 PHP 410 18.5.1 确定用户提交的数据 411 18.5.2 会话交互 412 18.5.3 潜在危险的API 412 18.5.4 配置PHP环境 416 18.6 Perl 418 18.6.1 确定用户提交的数据 418 18.6.2 会话交互 418 18.6.3 潜在危险的API 419 18.6.4 配置Perl环境 420 18.7 JavaScript 421 18.8 数据库代码组件 421 18.8.1 SQL注入 422 18.8.2 调用危险的函数 422 18.9 代码浏览工具 423 18.10 小结 424 18.11 问题 424 第19章 Web应用程序黑客工具包 426 19.1 Web浏览器 426 19.1.1 Internet Explorer 426 19.1.2 Firefox 427 19.1.3 Opera 428 19.2 集成测试套件 429 19.2.1 工作原理 429 19.2.2 特性比较 439 19.2.3 拦截代理服务器替代工具 443 19.3 漏洞扫描器 445 19.3.1 扫描器探测到的漏洞 445 19.3.2 扫描器的内在限制 447 19.3.3 扫描器面临的技术挑战 448 19.3.4 当前产品 449 19.3.5 使用漏洞扫描器 451 19.4 其他工具 451 19.4.1 Nikto 451 19.4.2 Hydra 452 19.4.3 定制脚本 452 19.5 小结 454 第20章 Web应用程序渗透测试方法论 456

...展开详情
上传时间:2012-06 大小:38.75MB
热门图书