DVWA(XSS Reflected/Stored High,CSRF Low)

XSS Reflected-High

1.这个题目我们用最普通的JS指令获取Cookie的方法是行不通的,然后我们就要想到之前做到这样的题目还可以去联想其他方法,比如:

利用它只匹配小写 <script> 的漏洞,写成大写:但是这个好像也拦截住了

javascript 复制代码
<ScRiPt>alert(document.cookie)</sCrIpT>

或者是嵌套拆字(把删掉的部分补回来):这个好像也不行

javascript 复制代码
<scr<script>ipt>alert(1)</scr</script>ipt>

换标签(根本不用 script 标签):这个成功了

正则只剥 script 字母序,img 不含 p 字母序所以漏网

onerror 是 HTML 的事件属性:当这个元素加载失败时,等号后面的 JS 就会执行。

拆开看这行 payload 的逻辑链:

  • <img src=x> ------ 你让浏览器去加载一张图片,地址是 x。这个地址根本不存在,必然加载失败
  • onerror=alert(document.cookie) ------ 浏览器一看:图片挂了,触发 onerror 事件 → 执行弹窗
  • 同样的还有 onload(加载成功触发)、onfocus(获得焦点触发)、onmouseover(鼠标划过触发)等
javascript 复制代码
<img src=x onerror=alert(document.cookie)>

XSS Stored-High

1.这个的Name输入框只能输入一定长度的字符,这个问题我们可以通过使用BP抓包修改Name的内容即可绕过,使用的命令和上面一个的实验命令是一样的。

CSRF Low

1.这个是DVWA的管理员修改密码的页面,而这个页面只靠浏览器的登录状态(Cookie)来验证身份,没有额外的防护措施

2.攻击步骤:

  • 攻击者构造一个恶意网页

  • 诱导管理员访问这个恶意页面(比如通过钓鱼邮件、论坛链接等)。

  • 管理员一打开页面,浏览器就自动提交了表单,向目标网站发送了修改密码的请求。

  • 因为管理员已经登录了,浏览器会自动带上他的登录 Cookie。服务器一看:"哦,是管理员本人发来的请求,合法!" 于是密码被改。

  • 攻击者现在可以用新密码登录管理员账户了。

3.做题步骤:

  • 先登录。

  • 分析修改密码的请求(用 Burp Suite 抓包),看看它有没有 CSRF Token、Referer 校验等防护。

  • 如果没有任何防护,就构造一个恶意的 HTML 页面,模拟自动提交表单。

  • 把这个页面托管在漏洞服务器(Exploit Server)上,然后交付给受害者。

  • 受害者访问后,密码就被改掉了,实验通关。

4.首先我们现在是登录了这个页面,然后我们看到这个地址栏里面的请求格式:

javascript 复制代码
http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change#

然后我们可以根据这个格式构造恶意代码,把密码的位置修改为你想要的密码,然后新建一个页面访问这个地址,这个恶意的页面可以直接被打开,然后我们在原来的页面退出登录,用这个被攻击者修改之后的密码登录。

登录成功则表示攻击成功

还可以是直接访问一个恶意的页面,下面有几种方法:

方法一:在 DVWA 里直接"种"一个恶意页面(最简单)

data:text/html,<img src="http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=你想要的密码\&password_conf=同上\&Change=Change" width="0" height="0">

这个是直接把这个放到地址栏里面直接访问就可以了

方法二:在本地创建一个 HTML 文件(最直观)

注意:这种方法要求你的浏览器能访问到 127.0.0.1(也就是 DVWA 服务器)。如果你是在虚拟机或 Docker 里跑 DVWA,确保网络能通。

声明:

本文所有实验均在本人本地电脑搭建的 DVWA(Damn Vulnerable Web Application)授权靶场环境中完成。DVWA 是专为网络安全学习设计的开源漏洞演练平台,实验环境为本地 phpStudy + MySQL,未连接任何公网服务。文中涉及的 XSS 与 CSRF 技术仅用于个人学习网络安全知识与记录实验过程。

XSS 与 CSRF 攻击均属于违法行为,《中华人民共和国刑法》第 285、286 条对非法侵入计算机信息系统、破坏计算机信息系统罪有明确规定,《网络安全法》对危害网络信息安全的行为亦有相应罚则。未经授权对他人网站、服务器或系统进行渗透测试,无论是否造成损害,都可能构成犯罪。

文中所有 payload 在合法授权环境之外不具备直接使用价值,且现代框架已普遍内置输出编码、CSRF Token、SameSite Cookie 等防御措施。请读者仅在学习环境中复现,技术是用来防守的。

如有错误欢迎指正,转载请注明出处。

相关推荐
小大宇1 小时前
Vue知识点6-computed计算属性
前端·javascript·vue.js
程序员海军1 小时前
尤雨溪 : Vue 4 已经在规划中了!
前端·javascript·vue.js
2601_949970692 小时前
HumanizeDuration 跨端三方库仓颉适配全流程
前端·javascript·flutter
风骏时光牛马3 小时前
后端服务接口开发与性能优化
前端
kyriewen4 小时前
我让 4 个 AI 互相 review 代码,最温柔的那个下手最狠
前端·程序员·ai编程
计算机魔术师4 小时前
493家公司白砸AI钱?Apollo这组数据戳破了幻觉
前端
IT_陈寒4 小时前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端
柳杉4 小时前
用 Codex 完成智慧高速 3D 可视化大屏,从 18 张行业设计稿到可交互的运行监测中心
前端·ai编程·数据可视化
review445435 小时前
拿到 codex 第一步
前端·agent·vibecoding
鶴哥只手遮天5 小时前
jQuery 4.0 源码架构与工程实践-第 01 章 · 全景与工程结构:一个 20 岁库的自省
前端·javascript·jquery