Flag和JavaScript document有关

本文为个人学习与实战过程中的思路总结,旨在分享技术探索经验,若有疏漏之处,欢迎交流指正。

好靶场简介

漏洞复现学习由"好靶场"支持

官网链接-好靶场平台-安全靶场-网络安全靶场

前期准备

我们开启靶场先看描述

这道题的描述是:"希望可以通过这个靶场了解怎么在浏览器执行JavaScript"

实战

个人解题思路

进入靶场是一个登录页面

按照我的个人思路以及能力范围内,我首先看逻辑源码,尝试登录,看网络流量包

并没有在里面发现任何信息

然后尝试登录

此处我们看到默认账号是admin/admin登录成功了

然后看逻辑代码也没发现什么

在流量包中发现了flag

官方解题思路

官方的解题思路就是直接bp抓包拦截看返回值,响应中就带有flag,和F12是相同的

只需要在输入账号密码后抓包拦截,发送到repeater

即可查看到flag

拓展

疑惑

此处我有一个疑惑,官方给的描述"希望可以通过这个靶场了解怎么在浏览器执行JavaScript",这个我可以理解,就是执行登录时触发JavaScript逻辑代码,但我没看懂这道题的题目内涵

题目:Flag和JavaScript document有关

JavaScript document 是什么?

document = JS 操作整个网页的工具

它是 JavaScript 里的超级对象,代表你当前打开的网页。

能用它做什么?

  • 获取网页内容
  • 修改网页文字
  • 获取输入框的值
  • 操作页面元素
  • 执行攻击代码(XSS)

最简单例子

复制代码
// 获取整个网页标题
document.title

// 获取输入框内容
document.getElementById("输入框ID").value

// 修改网页文字
document.write("我是注入的内容!")

它和我们的靶场有什么关系?

从我们实战过程看到,登录后服务器在响应头 Set-Cookie 里直接返回了 flag=...

document 在这里的作用是:

  • 前端读取 Cookie :在浏览器控制台里可以用 document.cookie 直接读取到包含 flag 的 Cookie,和抓包看到的结果一致。
  • 查看 DOM 结构 :用 document 相关 API(比如 document.getElementsByTagName)也能检查页面源码,确认 flag 没有直接写在 HTML 里,而是存在 Cookie 中。

总结

document 对象本身不是解题的 "必须步骤",但它是浏览器端读取 flag(Cookie)的入口 ,和抓包获取响应头里的 Set-Cookie 是等价的解题路径。

其它思路

我们不仅仅看官方的解题步骤,还可以看看评论区师傅们的思路

思路一

有学会一招,直接在网络中手搜索,这样不需要一个一个找,但是也存在缺点,比如后期可能会涉及加密等

思路二

还可以借用alert弹窗

本篇完 | 实践出真知,交流共进步

每一篇文章都是一次沉淀,感谢你的阅读。技术没有捷径,唯有不断积累、不断输出。期待下次继续与你分享更多实战经验,一起前行。

《法律与责任声明》

本内容仅用于网络安全漏洞的技术研究、学习与交流。

一、合法性要求

  • 严格遵守《中华人民共和国网络安全法》及相关法律法规,严禁将所学技术用于非法活动,如未经授权的攻击、窃取信息等。例如,不得对未授权的真实生产环境网站做漏洞测试。
  • 漏洞测试须在合法授权环境进行,可使用自己搭建的靶场或获书面授权的目标系统,否则将担法律责任。

二、风险与责任

  • 若因参考本内容对第三方造成损失,本人不承担法律责任,使用者自行担责。

三、传播限制

  • 禁止将本内容用于恶意传播,如制作恶意教程、培训非法黑客组织,应维护良好网络安全环境。
  • 发现有人利用本内容非法活动,应及时举报。

四、版权声明

本文为本人独立创作,有完整知识产权。未经书面许可,任何单位或个人不得转载、复制或以其他方式使用,违者依法追责。

阅读并使用本文章内容即表示同意声明条款

相关推荐
Wang's Blog6 小时前
Go-Zero 项目开发43:基于 Filebeat 收集各个服务的日志信息
开发语言·golang·go-zero·filebeat
一只小菜鸡..6 小时前
南京大学 操作系统 (JYY) 学习笔记:从 UNIX 到 Linux 与庞大的应用生态
笔记·学习·unix
丈剑走天涯7 小时前
JDK 17 正式特性
java·开发语言
东方小月7 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
秋田君7 小时前
QT_QFontDialog类字体对话框
开发语言·qt
圣光SG7 小时前
Java操作题练习(七)
java·开发语言·算法
Csvn7 小时前
🧩 ESM vs CJS 混用的 7 个「天坑」——从 TypeScript 编译到 Node 与浏览器
前端
Csvn7 小时前
🎯 Web 性能 API 集合:Performance Observer 的 5 个冷门妙用
前端
Csvn7 小时前
深入 React 闭包陷阱:从根源上理解并根治 stale closure
前端
whyfail8 小时前
前端学 Spring Boot(8):接口为什么越用越慢?
前端·spring boot·后端