Microsoft Word - WebGoat用户指南-beta2.doc



Similar documents

XXXXXXXX

untitled

目 录 目 录 平 台 概 述 技 术 架 构 技 术 特 点 基 于 统 一 平 台 的 多 产 品 线 支 撑 先 进 性 安 全 性 开 放 性 高 性 能 和

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

目录

final

epub 61-2

untitled

产品手册: CA GEN r8

untitled

Microsoft Word - SPEC

網站安全

温州市政府分散采购

ASP 電子商務網頁設計

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

AXIS P7224 Video Encoder Blade – Installation Guide

ArcGIS Sever.NET ArcGIS Server Web JAVA ArcGIS Server Web

软件概述

LiveBOS产品白皮书

Internet Explorer 10

untitled

Microsoft Word - ¸ê°T³q³ø281´Á.doc

TopTest_Adminstrator.doc

目 录 1. 前 言 为 什 么 要 用 ESB 技 术 发 展 业 务 需 求 IT 需 求 IT 与 业 务 一 致 性 要 求 TongIntegrator ESB v5 简 介..

ebook140-8

<4D F736F F D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

untitled

LiveBOS产品白皮书

附表2:

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

政府機關資訊通報第295期(5月)

FileMaker 15 WebDirect 指南

学 院 人 才 培 养 分 项 自 评 报 告 结 果 汇 总 表 主 要 评 估 指 标 关 键 评 估 要 素 自 评 等 级 1.1 学 校 事 业 发 展 规 划 合 格 1. 领 导 作 用 1.2 办 学 目 标 与 定 位 合 格 1.3 对 人 才 培 养 重 视 程 度 合 格 1

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

序号:001

目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇 业 务 流 程 管 理 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX BPMX3 是 什 么 为 什 么 要 优 先 采 用 BPMX

C6_ppt.PDF


中国软件2013校园招聘通知

Java 1 Java String Date

<4D F736F F D20C8EDBCFEA1B A1B33136BAC5A3BAB9D8D3DAB7A2B2BC C4EAC8EDBCFEB9A4B3CCCAB5D1B5D6AED0A3C4DABFC6D1D0CFEEC4BFB5C4CDA8D6AA2E646F63>

SiteView技术白皮书

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

产品手册

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se



11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与

<4D F736F F D2031A3AD4A617661BCBCCAF5CAC6CDB7D5FDBEA22E646F63>

目 录 简 介.3 ` 体 系 结 构...4 数 据 层...5 数 据 连 接 器...6 Tableau Server 组 件...7 网 关 / 负 载 平 衡 器...8 客 户 端 :Web 浏 览 器 和 移 动 应 用 程 序...8 客 户 端 :Tableau Desktop..

HOL-CHG-1695

投影片 1

Microsoft Word - ¸ê°T³q³ø273´Á.doc

weblogic

<4D F736F F D20B9FABCD2BBFAB9D8B0ECB9ABBDA8D6FEBACDB4F3D0CDB9ABB9B2BDA8D6FEC4DCBAC4BCE0B2E2CFB5CDB3C8EDBCFEBFAAB7A2D6B8B5BCCBB5C3F7CAE92E646F63>

HP 3PAR StoreServ 7000 Storage SmartStart 1.3 软件发行说明

untitled

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

ebook 132-2

Microsoft Word - 王彬_已修改_.doc

CA Nimsoft Monitor Snap 快速入门指南

turbomail方案

Mechanical Science and Technology for Aerospace Engineering October Vol No. 10 Web SaaS B /S Web2. 0 Web2. 0 TP315 A

Adobe AIR 安全性

1 情 况 综 述 2016 年 3 月, 全 省 公 共 互 联 网 网 络 安 全 状 况 整 体 评 价 为 良 本 月, 我 省 互 联 网 基 础 设 施 运 行 平 稳, 全 省 范 围 内 未 发 生 造 成 重 大 影 响 的 基 础 设 施 运 行 安 全 事 件, 未 发 生 网

R3105+ ADSL

Eclipse C C++, or

基于CDIO一体化理念的课程教学大纲设计

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

PowerPoint Presentation

indd

目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9

ebook140-9

RunPC2_.doc

PowerPoint 演示文稿

ClientHelpSymantec™ Endpoint Protection 及 Symantec Network Access Control 客户端指南

投影片 1

LTM Management Console

序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开 发 专 业 的 特 点 设 置 课 程 体 系, 体 现 了 课 程 为 市 场 服 务 的 特 点 本 专 业 要 求 学

<4D F736F F D B8BDBCFE332D3120C8EDBCFEB9A4B3CCCBB6CABFC5E0D1F8B7BDB0B8>

AL-M200 Series

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至

Cisco WebEx Meetings Server 2.6 版常见问题解答

Basic System Administration

(CIP) Web /,. :, ISBN X.W T P393.4 CIP (2004) Web ( ) ( / ) : * 787

IBM Rational ClearQuest Client for Eclipse 1/ IBM Rational ClearQuest Client for Ecl

1. 2. Flex Adobe 3.

北京北信源软件股份有限公司招股书(申报稿)

Java Desktop System 呂衄盋 2 呂衄说柔


Microsoft Word - 第1章 Android基本概念.docx

Microsoft Word 電腦軟體設計.doc

ebook140-11

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

Transcription:

目 录 序 言 :WebGoat 中 文 概 述... 3 目 标... 3 概 要... 3 未 来 发 展... 3 下 载... 4 发 行 版... 4 WebGoat 5.2 标 准 版... 4 WebGoat 5.2 开 发 版 ( 位 于 Sourceforge)... 4 演 示 解 决 方 案... 4 演 示 视 频 链 接... 5 项 目 贡 献 者... 5 1. Webgoat 用 户 指 南 卷 首 语... 6 1.1 版 权 与 许 可... 6 1.2 商 标... 6 1.3 贡 献 者... 6 1.4 文 档 版 本 历 史... 6 2. 概 述... 6 3. 目 的... 9 4. 必 备 工 具... 9 4.1 应 用 程 序 审 计 代 理... 9 4.2 应 用 程 序 爬 虫... 9 5. 安 装... 10 5.1 安 装 Java 和 Tomcat... 10

5.1.1 安 装 Java... 10 5.1.2 安 装 Tomcat... 10 5.2 安 装 到 Windows 系 统... 10 5.3 安 装 到 Linux 系 统... 10 5.4 安 装 至 OS X(Tiger 10.4+) 系 统... 10 5.5 安 装 至 FreeBSD 系 统... 11 5.6 运 行... 11 5.7 编 译... 11 5.8 安 装 WAR 文 件 到 已 安 装 的 Tomcat 服 务... 12 6. WebGoat 入 门... 12 7. 课 程 计 划... 14 8. 基 本 操 作... 17 9. 利 用 代 理... 19 10. 起 航... 20 11. 怎 样 写 一 个 新 的 WebGoat lesson... 21

序 言 :WebGoat 中 文 概 述 WebGoat 是 由 著 名 的 OWASP 负 责 维 护 的 一 个 漏 洞 百 出 的 J2EE Web 应 用 程 序, 这 些 漏 洞 并 非 程 序 中 的 bug, 而 是 故 意 设 计 用 来 讲 授 Web 应 用 程 序 安 全 课 程 的 对 于 每 堂 课, 用 户 须 通 过 搞 定 WebGoat 应 用 程 序 中 的 一 个 实 际 的 安 全 漏 洞 来 验 证 各 自 对 于 该 安 全 问 题 的 理 解 举 个 例 子, 在 其 中 一 个 课 程 中, 用 户 必 须 使 用 SQL 注 入 来 窃 取 ( 杜 撰 的 ) 信 用 卡 号 这 个 应 用 程 序 提 供 了 一 个 逼 真 的 教 学 环 境, 为 用 户 完 成 课 程 提 供 了 有 关 的 线 索 及 代 码, 从 而 使 用 户 能 更 深 入 地 理 解 该 课 程 为 什 么 叫 WebGoat 呢? 即 使 是 最 好 的 程 序 员 也 会 写 出 产 生 安 全 漏 洞 的 代 码, 因 而 开 发 人 员 不 必 因 为 不 懂 安 全 而 自 卑 他 们 需 要 的 仅 仅 是 一 个 替 罪 羊, 不 是 吗? 就 让 这 只 山 羊 背 黑 锅 吧! 请 参 考 WebGoat 用 户 及 安 装 指 南 开 始 目 标 在 学 习 和 实 践 Web 应 用 程 序 安 全 知 识 时, 我 们 所 面 临 的 一 大 难 点 是 : 到 哪 里 去 找 可 以 练 手 的 web 应 用 程 序 呢? 显 然, 明 目 张 胆 地 扫 描 在 线 书 店 或 者 网 络 银 行 可 不 是 个 好 主 意, 小 心 警 察 叔 叔 会 找 上 门 来 此 外, 安 全 专 业 人 员 经 常 需 要 测 试 某 些 安 全 工 具, 以 检 查 它 们 的 功 能 是 否 如 厂 商 所 鼓 吹 的 那 般, 这 时 他 们 就 需 要 一 个 具 有 确 定 漏 洞 的 平 台 作 为 活 靶 子 但 是, 无 论 学 习 web 测 试, 还 是 检 查 工 具 的 性 能, 都 要 求 在 一 个 安 全 合 法 的 环 境 下 进 行 即 使 你 的 意 图 是 好 的, 但 是 在 未 经 许 可 的 情 况 下 企 图 查 找 安 全 漏 洞 也 是 绝 不 允 许 的 WebGoat 项 目 的 主 要 目 标 很 简 单, 就 是 为 Web 应 用 程 序 安 全 学 习 创 建 一 个 生 动 的 交 互 式 教 学 环 境 将 来, 项 目 研 究 小 组 希 望 将 WebGoat 发 展 成 为 一 个 安 全 性 基 准 测 试 程 序 平 台 和 一 个 基 于 Java 的 蜜 罐 网 站 概 要 WebGoat 是 用 Java 语 言 写 成 的, 因 此 可 以 安 装 到 所 有 带 有 Java 虚 拟 机 的 平 台 之 上 此 外, 它 还 分 别 为 Linux OS X Tiger 和 Windows 系 统 提 供 了 安 装 程 序 部 署 该 程 序 后, 用 户 就 可 以 进 入 课 程 了, 该 程 序 会 自 动 通 过 记 分 卡 来 跟 踪 用 户 的 进 展 当 前 提 供 的 训 练 课 程 有 30 多 个, 其 中 包 括 : 跨 站 点 脚 本 攻 击 (XSS) 访 问 控 制 (Access Cnotrl) 线 程 安 全 (Thread Safety) 操 作 隐 藏 字 段 (Hidden Form Field Manipulation) 操 纵 参 数 (Parameter Manipulation) 弱 会 话 cookie(weak Session Cookies) SQL 盲 注 (Blind SQL Injection) 数 字 型 SQL 注 入 (Numeric SQL Injection) 字 符 串 型 SQL 注 入 (String SQL Injection) web 服 务 (Web Services) Open Authentication 失 效 (Fail Open Authentication) 危 险 的 HTML 注 释 (Dangers of HTML Comments) 等 等 更 多 请 参 考 WebGoat 用 户 及 安 装 指 南 未 来 发 展

近 年 来 WebGoat 已 经 比 较 稳 定 了 WebGoat 的 问 题 页 面 仍 然 存 在 问 题 需 要 修 复, 如 果 您 能 帮 助 修 复 将 不 胜 感 激 展 望 未 来,WebGoat 应 利 用 OWASP 提 供 的 培 训 材 料 的 优 势, 并 将 其 纳 入 教 学 计 划 的 材 料 现 阶 段 的 WebGoat 已 经 证 明 对 于 安 全 人 员 了 解 攻 击 类 型 及 如 何 利 用 之 是 有 用 的,WebGoat 应 开 始 专 注 于 教 导 安 全 和 开 发 人 员 相 关 的 缓 解 策 略 方 法 我 期 望 计 分 卡 功 能 和 系 统 架 构 能 有 所 完 善, 用 于 更 好 地 跟 踪 课 程 的 完 成 状 况 WebGoat 也 可 用 于 企 业 引 进 安 全 编 码 实 践 马 上 看 看 项 目 路 线 图, 找 点 任 务 来 帮 助 我 们 吧 下 载 WebGoat 可 从 Google code 下 载 区 http://code.google.com/p/webgoat/downloads/list 下 载, 您 也 可 相 应 的 同 步 取 得 当 前 的 WebGoat 代 码 树 http://code.google.com/p/webgoat/ 发 行 版 您 可 从 Sourceforge 的 OWASP 源 代 码 中 心 http://sourceforge.net/project/showfiles.php?group_id=64424&package_id=61824 取 得 WebGoat 老 版 本, 其 中 有 包 含 Java 的 版 本, 也 有 不 包 含 的 版 本 安 装 仅 需 解 压 下 载 到 的 安 装 包, 并 运 行 其 中 的 开 始 脚 本 即 可 为 便 于 学 习, 其 中 也 包 含 一 个 可 直 接 部 署 在 您 J2EE 应 用 服 务 器 上 的 war 包 WebGoat 5.2 标 准 版 该 标 准 发 行 版 下 载 解 压 缩 后, 即 可 单 击 运 行 它 包 含 Java 运 行 时 环 境 及 一 个 配 置 好 的 Tomcat5.5 服 务 器 双 击 执 行 webgoat.bat Tomcat 命 令 窗 口 即 会 启 动, 浏 览 器 浏 览 http://localhost/webgoat/attack WebGoat 5.2 开 发 版 ( 位 于 Sourceforge) 注 意 : 此 版 旨 在 提 供 一 个 WebGoat 实 验 室 环 境 如 果 您 想 开 发 自 己 的 教 学 课 程, 请 与 Google code 中 的 基 线 同 步 这 个 开 发 人 员 版 本 除 了 包 含 标 准 版 本 外, 还 多 了 一 个 已 配 置 的 Eclipse 环 境 这 个 开 发 人 员 版 本 使 用 也 很 简 单, 下 载 解 压 缩 然 后 单 击 脚 本 即 可 如 果 您 仅 仅 希 望 研 究 有 关 课 程 的 话, 它 用 起 来 跟 标 准 版 本 没 有 什 么 区 别 然 而, 如 果 希 望 组 建 实 验 室, 或 者 在 课 堂 上 使 用 WebGoat 的 话, 可 以 使 用 eclipse.bat 脚 本 来 启 动 一 个 预 配 置 的 WebGoat 环 境 具 体 的 使 用 说 明, 请 参 见 自 带 的 _HOW TO create the WebGoat workspace.txt_ 文 件 : 1. 将 Eclipse-Workspace.zip 解 压 至 工 作 目 录 ; 2. 双 击 eclipse.bat 文 件 ; 3. 在 Eclipse 右 上 角 的 包 资 源 管 理 器 中, 右 键 单 击 WebGoat 项 目, 并 刷 新 ; 4. 在 Eclipse 右 上 角 的 包 资 源 管 理 器 中, 右 键 单 击 Servers 项 目, 并 刷 新 ; 5. 在 Eclipse 底 部 的 服 务 器 视 图 中, 右 键 单 击 localhost 服 务 器, 并 启 动 它 ; 6. 在 浏 览 器 中 导 航 至 http://localhost/webgoat/attack 7. 源 代 码 发 生 的 任 何 变 化, 都 会 自 动 地 引 起 编 译 操 作, 保 存 后 会 自 动 重 新 部 署 如 对 该 版 本 有 任 何 建 议, 请 发 送 给 Bruce Mayhew(webgoat@owasp.org) 演 示 解 决 方 案 Aung Khant (YGN Ethical Hacker Group) 创 建 了 一 系 列 的 视 频 来 演 示 WebGoat 课 程 中 可 能 的 解 决 方 案, 它 们 可 从 http://yehg.net/lab/pr0js/training/webgoat.php 处 观 看 如 需 关 于 WebGoat 的 帮 助, 可 随 时 找 他

演 示 视 频 链 接 1. 综 合 http://yehg.net/lab/pr0js/training/webgoat.php#general 2. 代 码 品 质 http://yehg.net/lab/pr0js/training/webgoat.php#code_quality 3. 协 助 http://yehg.net/lab/pr0js/training/webgoat.php#concurrency 4. 未 认 证 参 数 http://yehg.net/lab/pr0js/training/webgoat.php#unvalidated_parameters 5. 接 入 限 制 缺 陷 http://yehg.net/lab/pr0js/training/webgoat.php#access_control_flaws 6. 认 证 缺 陷 http://yehg.net/lab/pr0js/training/webgoat.php#authentication_flaws 7. 会 话 管 理 缺 陷 http://yehg.net/lab/pr0js/training/webgoat.php#session_management_flaws 8. 跨 站 脚 本 攻 击 http://yehg.net/lab/pr0js/training/webgoat.php#cross-site_scripting_(xss) 9. 缓 冲 区 溢 出 http://yehg.net/lab/pr0js/training/webgoat.php#buffer_overflows 10. 注 入 缺 陷 http://yehg.net/lab/pr0js/training/webgoat.php#injection_flaws 11. 不 安 全 的 存 储 http://yehg.net/lab/pr0js/training/webgoat.php#insecure_storage 12. 拒 绝 服 务 http://yehg.net/lab/pr0js/training/webgoat.php#denial_of_service_(dos) 13. 错 误 配 置 http://yehg.net/lab/pr0js/training/webgoat.php#insecure_configuration_insecure 14. web 服 务 http://yehg.net/lab/pr0js/training/webgoat.php#web_services 15. AJAX 安 全 http://yehg.net/lab/pr0js/training/webgoat.php#ajax_security 16. 挑 战 http://yehg.net/lab/pr0js/training/webgoat.php#challenge 项 目 贡 献 者 WebGoat 项 目 由 Bruce Mayhew. 主 持, 可 通 过 webgoat@owasp.org 与 之 联 系 WebGoat 通 过 Sourceforge 及 Google 进 行 分 发 WebGoat 框 架 使 得 添 加 其 它 课 程 变 得 非 常 容 易 随 着 新 的 web 技 术 不 断 涌 现, 我 们 正 在 积 极 寻 找 开 发 人 员 添 加 新 的 课 程 如 果 你 有 兴 趣 为 项 目 志 愿 服 务, 或 有 意 见 问 题 及 建 议, 请 加 入 WebGoat 邮 件 列 表 (http://lists.owasp.org/mailman/listinfo/owasp-webgoat) 感 谢 Ounce 实 验 室 (http://www.ouncelabs.com/) 允 许 我 能 在 工 作 时 间 运 行 WebGoat 项 目

1. Webgoat 用 户 指 南 卷 首 语 1.1 版 权 与 许 可 Copyright OWASP Foundation 本 文 档 发 行 遵 循 GNU 文 档 许 可, 最 终 版 权 归 OWASP 所 有 请 阅 读 了 解 许 可 与 版 权 授 与 条 件 许 可 证 副 本 及 其 期 限 说 明, 请 参 考 http://www.gnu.org/licenses/gpl.html 本 文 档 副 本 必 须 满 足 GNU 免 费 文 档 许 可 要 求 的 框 架 本 文 档 的 原 始 格 式 和 翻 译 不 公 开 1.2 商 标 Java,Java Web Server, 以 及 JSP 为 SUN Microsystems 公 司 注 册 商 标 Microsoft Internet Explorer 为 微 软 公 司 注 册 商 标 Firefox 为 Mozilla 公 司 注 册 商 标 所 有 其 它 产 品 和 公 司 为 它 们 各 自 拥 有 者 注 册 商 标 本 文 档 中 所 有 产 品 的 用 户 使 用 期 限 不 应 该 被 看 作 为 影 响 了 任 何 服 务 项 目 所 注 册 商 标 的 合 法 性 1.3 贡 献 者 第 2 版 本 : 匿 名 贡 献 者 第 4 版 本 原 始 草 案 :Robert Sullivan(msp.sullivan@gmail.com) 贡 献 作 者 : 1.4 文 档 版 本 历 史 2004 年 1 月 Release v2 2006 年 3 月 Release v4 原 始 草 案 2007 年 1 月 Release v5 2. 概 述 WebGoatV5 应 用 程 序 是 一 个 用 来 演 示 Web 应 用 程 序 中 的 典 型 安 全 漏 洞 的 应 用 程 序, 旨 在 在 应 用 程 序 安 全 审 计 的 上 下 文 中 系 统 地 有 条 理 地 讲 解 如 何 测 试 和 利 用 这 些 安 全 漏 洞 一 个 完 整 的 应 用 程 序 安 全 性 评 估 测 试 方 法 在 文 档 http://www.owasp.org/index.php/owasp_testing_project 中 有 说 明, 它 同 时 提 供 了 一 份 WebGoat 演 示 的 扩 展 的 说 明 包 括 标 准 的 设 计 和 代 码 审 计 等 等 WebGoat 课 程 旨 在 给 大 家 一 个 能 完 成 不 同 级 别 的 owasp web 应 用 程 序 安 全 测 试 方 法 真 实 的 训 练 环 境 和 实 例 WebGoatV5 应 用 程 序 提 供 了 一 个 典 型 的 应 用 程 序 安 全 评 估 的 测 试 平 台 测 试 人 员 在 这 个 在 线 的 应 用 程 序 中 拥 有 和 普 通 的 客 户 或 者 客 户 端 一 样 的 权 限 和 信 息 : 此 应 用 程 序 是 基 于 web 的 ; 这 些 都 是 远 程 的 攻 击 摸 拟, 所 有 有 记 录 的 攻 击 手 法 都 可 以 从 任 何 可 以 连 接 的 地 方 进 行 连 接 演 示 ; 这 些 测 试 都 是 基 于 黑 盒 的, 源 代 码 不 提 供, 但 是 你 可 下 载 和 浏 览 它 ; 凭 证 和 操 作 信 息 是 提 供 的, 当 然,WebGoat 也 常 常 告 诉 我 们 可 以 显 示 出 来 的 确 定 信 息 往 往 是 你 探 测 不 到 的 这 也 同 时 是 在 指 导 测 试 人 员 从 头 到 尾 完 整 的 进 行 某 项 评 估 过 程 目 前 WebGoat 课 程 计 划 中 提 供 的 内 容 如 下 : HTTP Basics HTTP Splitting and Cache Poisining How to Exploit Thread Safety Problems

How to Discover Clues in the HTML How to Exploit Hidden Fields How to Exploit Unchecked Email How to Bypass Client Side JavaScript Validation How to Force Browser Web Resources How to Bypass a Role Based Access Control Scheme How to Bypass a Path Based Access Control Scheme LAB: Role based Access Control Using an Access Control Matrix How to Exploit the Forgot Password Page How to Spoof an Authentication Cookie How to Hijack a Session Basic Authentication LAB: Cross Site Scripting How to Perform Stored Cross Site Scripting (XSS) How to Perform Reflected Cross Site Scripting (XSS) How to Perform Cross Site Trace Attacks (XSS) Buffer Overflow (TBD) HTTPOnly Test How to Perform Command Injection How to Perform Parameter Injection

How to Perform Blind SQL Injection How to Perform Numeric SQL Injection How to Perform String SQL Injection How to Perform Log Spoofing How to Perform XPATH Injection Attacks LAB: SQL Injection How to Bypass a Fail Open Authentication Scheme How to Peform Basic Encoding Denial of Service from Multiple Logins How to Create a SOAP Request How to Perform WSDL Scanning How to Perform Web Service SAX Injection How to Perform Web Service SQL Injection How to Perform DOM Injection Attack How to Perform XML Injection Attacks How to Perform JSON Injection Attack How to Perform Silent Transactions Attacks How to Add a New Lesson The Challenge 未 来 的 WebGoat 新 版 本 将 会 包 含 更 多 的 课 程 和 功 能 如 果 你 有 任 何 的 建 议 可 以 帮 助 改 进 或 者 有 任 何 新 课 程 想 发 布, 请 联 系 bill@owasp.org 并 说 出 你 的 想 法

3. 目 的 在 通 过 WegGoat 课 程 体 系 的 测 试 技 术 训 练, 测 试 人 员 应 该 掌 握 以 下 技 能 : 理 解 web 应 用 程 序 中 的 各 种 高 层 次 交 互 过 程 确 定 客 户 信 息 的 可 见 数 据 可 用 于 攻 击 过 程 中 识 别 和 理 解 能 将 应 用 程 序 暴 露 在 攻 击 之 下 的 数 据 和 用 户 交 互 对 这 些 交 互 进 行 测 试, 以 揭 露 它 们 的 缺 陷 利 用 漏 洞 对 应 用 程 序 进 行 攻 击, 并 能 演 示 4. 必 备 工 具 对 于 有 经 验 的 应 用 程 序 安 全 审 计 人 员 来 说, 可 用 的 辅 助 工 具 有 很 多 就 我 们 这 种 类 型 的 安 全 审 计 来 说, 最 常 用 的 工 具 就 是 本 地 代 理 和 Web 应 用 程 序 爬 虫 为 了 完 成 全 套 WebGoat 课 程,Web 代 理 程 序 是 必 不 可 少 的 4.1 应 用 程 序 审 计 代 理 一 般 的 web 代 理 通 常 都 能 接 收 处 理 和 转 发 客 户 和 服 务 器 之 间 的 HTTP 和 HTTPS 数 据, 这 样 就 能 让 所 有 的 web 通 信 流 量 都 流 经 某 个 点, 以 便 通 过 高 速 缓 存 或 者 应 用 安 全 策 略 来 监 视 利 用 率 提 高 性 能, 等 等 应 用 程 序 代 理 工 具 可 用 来 拦 截 本 地 客 户 端 的 浏 览 器 和 服 务 器 端 之 间 所 有 的 HTTP 和 HTTPS 通 信, 它 实 际 上 充 当 了 一 个 可 以 监 视 检 查 和 ( 最 重 要 地 ) 修 改 所 有 的 交 互 的 中 间 人 角 色 通 过 这 种 工 具, 审 计 人 员 可 以 准 确 确 定 出 在 客 户 和 服 务 器 之 间 传 递 的 到 底 是 什 么 样 的 数 据 此 外, 它 们 还 可 以 对 这 些 数 据 进 行 分 析 和 修 改, 从 而 测 试 对 应 用 程 序 的 影 响 另 外 一 个 重 要 原 因 是 使 用 HTTP 代 理 是 因 为 WebGoat 要 求 基 本 的 身 份 认 证, 当 自 动 化 工 具 被 用 于 访 问 WebGoat 时, 他 们 可 能 没 有 足 够 的 功 能 来 验 证 WebGoat 通 过 使 用 像 WebScarab 代 理, 测 试 人 员 可 以 设 置 基 本 身 份 验 证, 而 且 可 以 将 认 证 的 凭 证 透 明 地 传 输 给 WebGoat 请 求 在 WebGoat 的 许 多 课 程 中, 应 用 程 序 审 计 代 理 或 者 具 备 同 等 功 能 的 软 件 都 是 必 不 可 少 的 下 列 是 我 们 推 荐 的 工 具 : WebScarab-https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project BurpProxy- http://portswigger.net/ ParosProxy - http://parosproxy.org 4.2 应 用 程 序 爬 虫 所 谓 爬 行 一 个 站 点, 实 际 上 就 是 识 别 和 访 问 网 站 应 用 程 序 内 所 有 预 定 的 页 面 和 链 接, 并 建 立 本 地 副 本 ; 当 然 建 立 副 本 这 一 点 通 常 是 可 选 的 然 后, 我 们 就 可 以 分 析 爬 行 结 果, 得 到 应 用 程 序 内 目 标 脚 本 表 单 页 面 和 字 段 等 组 成 的 明 细 表 供 后 面 的 测 试 之 用 镜 像 下 来 的 内 容 也 可 以 用 来 分 析 有 关 信 息, 这 样 做 要 比 人 工 或 者 在 线 分 析 要 快 得 多 了 下 列 是 我 们 推 荐 的 工 具 : WebScarab-https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project BurpSpider - http://portswigger.net ParosProxy - http://parosproxy.org

5. 安 装 WebGoat 是 一 个 平 台 无 关 的 Web 安 全 漏 洞 实 验 环 境, 该 环 境 需 要 Apache Tomcat 和 JAVA 开 发 环 境 的 支 持 它 分 别 为 Microsoft Windows 和 UN*X 环 境 提 供 了 相 应 的 安 装 程 序, 下 面 我 们 将 根 据 操 作 系 统 分 别 加 以 介 绍 需 要 注 意, 从 版 本 5 开 始, 这 一 步 可 以 省 略, 因 为 它 们 自 身 带 有 Java Development Kit 和 Tomcat 5.5 5.1 安 装 Java 和 Tomcat 5.1.1 安 装 Java 首 先 安 装 Java, 您 可 以 从 http://java.sun.com/downloads/ 安 装 和 部 署 合 适 的 版 本, 最 低 版 本 要 求 为 1.4.1 5.1.2 安 装 Tomcat 然 后 安 装 Tomcat, 您 可 以 从 http://tomcat.apache.org/download-55.cgi 安 装 和 部 署 Tomcat 5.2 安 装 到 Windows 系 统 1. 将 WebGoat-OWASP_Standard-5.2.zip 解 压 至 合 适 的 目 录 中 2. 若 要 启 动 Tomcat, 切 换 至 前 面 存 放 解 压 后 的 WebGoat 的 目 录, 然 后 双 击 webgoat.bat 即 可 3. 启 动 浏 览 器, 在 地 址 栏 输 入 http://localhost/webgoat/attack 注 意, 这 个 链 接 地 址 是 区 分 大 小 写 的, 务 必 确 保 其 中 使 用 的 是 大 写 字 母 W 和 G 5.3 安 装 到 Linux 系 统 1. 将 WebGoat-OWASP_Standard-x.x.zip 解 压 至 您 的 工 作 目 录 2. 将 webgoat.sh 文 件 中 的 第 17 19 和 23 行 中 的 1.5 改 为 1.6 3. 因 为 最 新 版 本 运 行 在 一 个 特 权 端 口 上, 所 以 您 需 要 使 用 下 列 命 令 来 启 / 停 WebGoat Tomcat: (1). 当 作 为 root 用 户 运 行 在 80 端 口 时, 使 用 : sudo sh webgoat.sh start80 sudo sh webgoat.sh stop (2). 当 运 行 在 8080 端 口 时, 使 用 : sh webgoat.sh start8080 sh webgoat.sh stop 5.4 安 装 至 OS X(Tiger 10.4+) 系 统 1. 将 WebGoat-OWASP_Standard-x.x.zip 解 压 至 您 的 工 作 目 录 2. 将 webgoat.sh 文 件 中 的 第 10 行 中 的 1.5 改 为 1.6 3. 因 为 最 新 版 本 运 行 在 一 个 特 权 端 口 上, 所 以 您 需 要 使 用 下 列 命 令 来 启 / 停 WebGoat Tomcat: (1). 当 作 为 root 用 户 运 行 在 80 端 口 时, 使 用 :

sudo sh webgoat.sh start80 sudo sh webgoat.sh stop (2). 当 运 行 在 8080 端 口 时, 使 用 : sh webgoat.sh start8080 sh webgoat.sh stop 5.5 安 装 至 FreeBSD 系 统 1. 从 Ports Collection 安 装 来 安 装 Tomcat 和 Java : cd /usr/ports/www/tomcat55 sudo make install 2. 安 装 Java JDK 的 时 候, 可 能 需 要 手 工 方 式 进 行 下 载, 届 时 系 统 会 给 出 详 细 的 提 示 3. 将 WebGoat-OWASP_Standard-x.x.zip 解 压 至 您 的 工 作 目 录 4. 将 webgoat.sh 文 件 中 的 第 17 19 和 23 行 中 的 1.5 改 为 1.6 5. 因 为 最 新 版 本 运 行 在 一 个 特 权 端 口 上, 所 以 您 需 要 使 用 下 列 命 令 来 启 / 停 WebGoat Tomcat: (1). 当 作 为 root 用 户 运 行 在 80 端 口 时, 使 用 : sudo sh webgoat.sh start80 sudo sh webgoat.sh stop (2). 当 运 行 在 8080 端 口 时, 使 用 : sh webgoat.sh start8080 sh webgoat.sh stop 5.6 运 行 1. 启 动 浏 览 器, 并 在 地 址 栏 输 入 http://localhost/webgoat/attack, 注 意 这 里 使 用 的 大 写 的 字 母 W 和 G 2. 登 录 时, 用 户 帐 号 使 用 guest, 密 码 为 guest 5.7 编 译 如 果 你 仅 仅 只 是 为 了 运 行 WebGoat 的 话, 请 跳 过 这 一 节

WebGoat 可 以 用 eclipse WTP 1.5.x 来 编 译 请 到 http://webgoat.googlecode.com/svn/trunk/webgoat/readme.txt 去 阅 读 相 关 的 步 骤 来 编 译 它, 或 者 你 也 可 以 阅 读 下 面 的 开 发 版 安 装 方 法 : WebGoat 开 发 版 安 装 方 法 : WebGoat 5.2 Developer 版 ( 位 于 SourceForge 网 站 ), 注 意 : 这 个 版 本 旨 在 提 供 一 个 WebGoat 实 验 室 环 境 如 果 您 想 开 发 自 己 的 教 学 课 程, 请 与 Google code 站 点 上 的 基 线 同 步 这 个 开 发 人 员 版 本 除 了 包 含 标 准 版 本 外, 还 多 了 一 个 已 配 置 的 Eclipse 环 境 这 个 开 发 人 员 版 本 使 用 也 会 简 单, 下 载 解 压 缩 然 后 单 击 脚 本 即 可 如 果 您 仅 仅 希 望 研 究 有 关 课 程 的 话, 它 用 起 来 跟 标 准 版 本 没 有 什 么 区 别 然 而, 如 果 希 望 组 建 实 验 室, 或 者 在 课 堂 上 使 用 WebGoat 的 话, 可 以 使 用 eclipse.bat 脚 本 来 启 动 一 个 预 配 置 的 WebGoat 环 境 具 体 的 使 用 说 明, 请 参 见 自 带 的 _HOW TO create the WebGoat workspace.txt_ 文 件 1. 将 Eclipse-Workspace.zip 抽 取 至 工 作 目 录 2. 双 击 eclipse.bat 文 件 3. 在 Eclipse 右 上 角 的 包 资 源 管 理 器 中, 右 键 单 击 WebGoat 项 目, 并 刷 新 4. 在 Eclipse 右 上 角 的 包 资 源 管 理 器 中, 右 键 单 击 Servers 项 目, 并 刷 新 5. 在 Eclipse 底 部 的 服 务 器 视 图 中, 右 键 单 击 localhost 服 务 器, 并 启 动 它 6. 在 浏 览 器 中 导 航 至 http://localhost/webgoat/attack 7. 源 代 码 发 生 的 任 何 变 化, 都 会 自 动 地 引 起 编 译 操 作, 保 存 后 会 自 动 重 新 部 署 5.8 安 装 WAR 文 件 到 已 安 装 的 Tomcat 服 务 这 个 版 本 将 假 定 已 经 预 先 安 装 了 WebGoat Standard 版 本, 或 者 主 机 已 经 安 装 了 java 1.5( 或 更 高 版 本 ) 和 tomcat 5.5 如 果 您 尚 未 安 装 Standard 版 本, 那 么 就 需 要 修 改 tomcat/conf/tomcat-users.xml 文 件 来 添 加 WebGoat 用 户, 具 体 请 参 阅 http://code.google.com/p/webgoat/wiki/faq 1. 从 WebGoat Downloads 链 接 下 载 WebGoat-OWASP_WAR-X.X.zip 2. 如 果 Tomcat 正 在 运 行 的 话, 请 先 将 其 关 闭 只 需 关 闭 Tomcat 窗 口 即 可 3. 将 war 文 件 拷 贝 至 WebGoat-X.X\tomcat\webapps\webgoat.war 4. 删 除 现 有 的 WebGoat-X.X\tomcat\webapps\webgoat 目 录 (1). 这 会 导 致 所 有 的 课 程 状 态 被 丢 失 (2). 若 要 保 存 课 程 状 态, 请 保 留 webapps\webgoat\users 文 件 夹 的 副 本 (3). 重 新 启 动 WebGoat 之 后 恢 复 这 个 用 户 目 录 5. 切 换 至 WebGoat-X.X 目 录 6. 双 击 webgoat.bat 文 件, 这 时 Tomcat 窗 口 就 会 启 动 7. 在 浏 览 器 中 导 航 至 http://localhost/webgoat/attack 6. WebGoat 入 门 开 始 使 用 WebGoat 之 前, 必 须 先 启 动 Tomcat, 这 可 以 通 过 Tomcat 的 /bin 目 录 中 的 script/bat 程 序 startup 来 完 成 此 外, 要 想 正 常 使 用 WebGoat, 它 必 须 具 备 作 为 服 务 器 运 行 所 需 的 权 限, 并 允 许 一 些 不 常 见 的 web 行 为 注 意 WebGoat 运 行 时, 安 全 漏 洞 会 使 主 机 很 容 易 遭 到 攻 击 如 果 机 器 连 接 到 了 互 联 网, 那 么 就 应 该 将 其 断 开

运 行 的 个 人 防 火 墙 可 能 会 阻 止 WebGoat 的 正 常 使 用 所 以, 运 行 WebGoat 时 最 好 禁 用 所 有 的 个 人 防 火 墙 我 们 可 以 使 用 浏 览 器 浏 览 localhost 的 80 端 口 来 访 问 Tomcat 服 务 器, 如 http://127.0.0.1 WebGoat 位 于 WebGoat 目 录, 你 还 可 以 在 这 里 找 到 课 程 http://127.0.0.1/webgoat/attack WebGoat 的 应 用 程 序 强 制 采 用 基 于 角 色 的 安 全 机 制 登 录 对 话 请 求 会 要 求 输 入 身 份 凭 证 可 以 使 用 userid=guest,password=guest 登 录 图 1 登 录 界 面 成 功 登 录 之 后,Tomcat 服 务 器 将 显 示 WebGoat 的 欢 迎 页 面

图 2 欢 迎 页 面 7. 课 程 计 划 课 程 计 划 包 含 WebGoat5.0(1/31/07): HTTP Basics General HTTP Splitting and Cache Poisining How to Exploit Thread Safety Problems How to add a new WebGoat lesson Code Quality How to Discover Clues in the HTML Unvalidated Parameters How to Exploit Hidden Fields

How to Exploit Unchecked Email How to Bypass Client Side JavaScript Validation Using an Access Control Matrix How to Bypass a Path Based Access Control Scheme Broken Access Control How to Perform Cross Site Request Forgery (CSRF) LAB: Role based Access Control Remote Admin Access Forgot Password Broken Authentication How to Spoof an Authentication Cookie How to Hijack a Session Basic Authentication LAB: Cross Site Scripting How to Perform Stored Cross Site Scripting (XSS) Cross Site Scripting (Xss) How to Perform Reflected Cross Site Scripting (XSS) HTTPOnly Test How to Perform Cross Site Tracing (XST) Attacks Buffer Overflows Buffer Overflow How to Perform Command Injection Injection Flaws How to Perform Blind SQL Injection How to Perform Numeric SQL Injection How to Perform Log Spoofing

How to Perform XPATH Injection How to Perform String SQL Injection LAB: SQL Injection How to Use Database Backdoors Improper Error Handling How to Bypass a Fail Open Authentication Scheme Insecure Storage Encoding Basics Denial of Service Denial of Service From Multiple Logins Insecure Configuration Management Forced Browsing How to Create a SOAP Request Web Services WSDL Scanning Web Service SAX Injection Web Service SQL Injection DOM Injection AJAX Security XML Injection JSON Injection Silent Transactions Attacks Challenge The Challenge 每 个 WebGoat 里 的 课 程 都 提 供 了 课 程 概 述 和 目 标 你 可 以 点 击 显 示 课 程 计 划 按 钮

这 些 课 程 计 划 涵 盖 了 目 标 应 用 程 序 的 所 有 操 作, 以 及 感 兴 趣 尝 试 的 领 域, 包 括 有 关 的 安 全 评 估 和 攻 击 类 型 8. 基 本 操 作 我 们 知 道, 在 应 用 程 序 安 全 评 估 的 每 一 个 阶 段, 都 需 要 对 目 标 的 运 作 机 制 有 深 入 的 了 解 这 通 常 包 括 : 考 察 客 户 端 内 容, 如 HTML 和 script 分 析 客 户 端 和 服 务 器 之 间 的 通 讯 检 查 cookie 及 其 他 本 地 数 据 浏 览 器 已 经 使 得 查 看 HTML 源 代 码 变 得 非 常 轻 松, 而 WebGoat 又 增 加 了 多 种 操 作, 包 括 显 示 参 数 显 示 HTML 显 示 Cookies 和 显 示 Java 等

图 3 WebGoat 显 示 HTML 源 代 码 通 常 情 况 下, 浏 览 器 提 供 了 查 看 HTML 源 代 码 的 功 能 对 于 微 软 公 司 的 Internet Explorer 浏 览 器, 可 以 通 过 查 看 菜 单 下 的 源 文 件 选 项 来 查 看 HTML 源 代 码 对 于 Firefox 浏 览 器 来 说, 查 看 页 面 源 码 的 功 能 同 样 位 于 查 看 菜 单 下 的 页 面 源 代 码 下 WebGoat 显 示 HTML 的 功 能 仅 仅 展 示 当 前 的 HTML 代 码, 而 不 包 括 侧 边 栏 和 上 边 栏 对 应 的 HTML 代 码 图 4 显 示 HTML 源 代 码 这 里, 参 数 和 cookie 显 示 为 红 色

图 5 显 示 参 数 Cookies 这 里 显 示 Java 操 作 会 弹 出 一 个 包 含 源 代 码 的 新 窗 口 9. 利 用 代 理 要 想 充 分 挖 掘 WebGoat 的 各 种 功 能, 我 们 还 需 要 借 助 审 计 人 员 常 用 的 应 用 程 序 审 计 代 理 工 具 代 理 工 具 可 以 帮 助 我 们 进 行 更 深 入 的 分 析, 并 能 修 改 客 户 端 - 服 务 器 的 交 互 和 传 输 过 程 中 的 数 据 虽 然 不 同 的 工 具, 它 的 使 用 和 配 置 方 法 也 不 相 同, 但 基 本 概 念 是 一 致 的 : 应 用 程 序 审 计 代 理 必 须 位 于 客 户 端 的 浏 览 器 和 远 程 服 务 器 之 间 它 应 该 允 许 显 示 和 修 改 传 输 中 的 所 有 HTTP 数 据 该 工 具 通 常 会 直 接 插 入 浏 览 器, 或 者 在 另 外 一 个 本 机 端 口 进 行 侦 听 当 代 理 程 序 直 接 插 入 浏 览 器 的 时 候, 需 要 在 浏 览 器 中 键 入 一 个 特 殊 的 URL 当 该 工 具 侦 听 端 口 时, 则 需 要 对 浏 览 器 进 行 相 应 的 配 置, 方 可 正 常 使 用 该 工 具 在 微 软 公 司 的 Internet Explorer 中, 可 以 通 过 工 具 菜 单 完 成 配 置 工 作, 如 下 所 示 : 选 择 工 具 菜 单 中 的 Internet 选 项 菜 单 项 选 择 连 接 选 项 卡

单 击 选 项 卡 下 方 的 局 域 网 设 置 按 钮 在 局 域 网 设 置 对 话 框 中, 选 中 为 LAN 使 用 代 理 服 务 器 的 复 选 框 勾 掉 对 本 地 地 址 不 使 用 代 理 服 务 器 框 输 入 代 理 工 具 将 要 侦 听 的 地 址 和 端 口 对 于 WebScarab 而 言, 其 默 认 侦 听 端 口 是 8008 图 6 局 域 网 设 置 现 在, 每 当 从 客 户 端 的 浏 览 器 接 收 或 者 发 送 数 据 时, 我 们 都 能 够 通 过 拦 截 分 析 和 修 改 这 些 HTTP 请 求, 来 测 试 目 标 应 用 程 序 的 安 全 性 设 置 和 运 行 WebScarab 的 教 程 请 看 这 里 :WebScarab 教 程 借 助 这 类 代 理, 审 计 人 员 可 以 获 得 多 种 能 力, 包 括 : 所 有 的 GET/POST 参 数 都 可 以 修 改, 不 管 它 是 不 是 隐 藏 的 所 有 的 Cookie, 不 管 是 持 久 性 还 是 非 持 久 性 的 Cookie, 当 它 们 进 入 和 离 开 浏 览 器 时, 我 们 都 可 以 对 其 进 行 修 改 所 有 的 客 户 端 验 证 都 可 以 绕 过, 因 为 参 数 在 发 送 给 服 务 器 之 前 可 以 立 即 进 行 修 改 能 够 暴 露 高 速 缓 存 的 数 据, 以 便 于 分 析 能 够 暴 露 出 Server 及 其 他 报 头, 这 对 于 获 取 远 程 web 服 务 器 类 型 和 所 用 的 应 用 程 序 - 服 务 器 技 术 非 常 有 利 10. 起 航 剩 下 的 工 作 是 开 始 WebGoat lesson 最 后 一 点 :

如 果 你 没 有 完 整 的 手 册, 你 也 可 以 自 己 去 收 集 一 些 帮 助 信 息, 这 都 能 帮 助 你 完 成 课 程 不 要 太 急 于 求 成, 应 用 测 试 靠 的 是 10% 的 技 术 和 90% 的 横 向 思 维 如 果 你 通 过 自 己 的 努 力 去 战 胜 课 程 设 置 的 难 题, 你 会 学 习 并 且 掌 握 到 更 多 的 东 西 当 然, 这 一 切 要 经 过 大 量 的 尝 试, 一 次 次 的 失 败, 终 于 一 个 闪 念 把 你 引 向 成 功 这 个 过 程 中, 你 可 以 去 责 怪 Goat, 但 是 你 不 能 去 依 赖 他 人 11. 怎 样 写 一 个 新 的 WebGoat lesson 你 要 做 的 是 实 现 LessonAdapter 的 抽 象 方 法 WebGoat 使 用 了 Jakarta Element Construction Set, 你 可 以 去 研 读 一 下 ECS 的 API: http://jakarta.apache.org/site/downloads/downloads_ecs.cgi WebGoat 使 用 了 WTP, 更 多 Eclipse WTP 的 信 息 http://www.eclipse.org/webtools/ 步 骤 1: 搭 建 framework NewLesson.java 类 的 源 码 步 骤 2: 实 现 creatcontent 创 建 一 个 lesson 的 内 容 相 当 简 单, 包 含 两 个 主 要 部 分 : 1. 处 理 输 入, 即 来 自 于 用 户 的 最 新 请 求 2. 为 用 户 生 成 下 一 个 交 互 页 这 些 都 要 通 过 createcontent 方 法 实 现 每 个 lesson 最 好 在 一 个 单 页 上 完 成, 因 此 设 计 的 时 候, 把 lesson 的 功 能 设 计 在 一 个 页 面 上 是 很 重 要 的 实 例 createcontent 方 法 下 面 是 一 个 不 错 的 通 用 范 例 createcontent 方 法 : ECS 功 能 十 分 强 大 参 看 编 码 课 程 的 示 例, 关 于 如 何 使 用 它 创 建 一 个 行 列 输 出 的 表 格

步 骤 3: 实 现 其 他 方 法 要 想 让 一 个 lesson 有 更 丰 富 的 功 能,LessonAdapter 类 需 要 更 多 的 方 法 这 些 方 法 可 以 导 航 课 程 或 者 显 示 课 程 信 息 给 用 户 所 有 的 方 法 都 应 该 相 当 简 单, 只 需 要 花 几 分 钟 的 时 间 就 能 实 现 其 他 LessonAdapter 方 法 步 骤 4: 创 建 和 测 试 <v4 中 有 变 动 > 实 现 一 个 新 的 lesson 后,ant 被 用 来 创 建 部 署 一 个 新 的 web 应 用 首 先, 移 除 webapps 目 录 下 的 webgoat.war 文 件 以 及 webgoat 目 录 然 后, 进 入 webgoat 目 录 下 输 入 : 用 来 编 译 新 lesson 并 且 安 装 到 tomcat 路 径 Lesson 只 需 要 一 次 安 装, 如 果 web 应 用 和 其 他 的 测 试 有 变 动, 可 以 输 入 :

步 骤 5: 回 馈 员 如 果 你 完 成 了 一 个 lesson 并 且 认 为 在 web 应 用 安 全 方 面 有 所 帮 助, 请 提 供 给 WegGoat 应 用 的 维 护 人