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 等防御措施。请读者仅在学习环境中复现,技术是用来防守的。

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

相关推荐
默_笙2 小时前
🍔 中间件不只是打日志:四个钩子、一次短路,和自带的工具
前端·javascript
程序员老赵2 小时前
Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台
运维·前端·后端
星禾元亨3 小时前
同一件事有三份资料,AI 该信哪一份?冲突判定、优先级链与处置流程
前端·人工智能
Dovis(誓平步青云)3 小时前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑
穆梓兰煊3 小时前
TS5.7 vs 裸JS:AI应用少3坑
前端
榆瓷3 小时前
闲着没事,我把 WebGPU 的样板代码封成了一个库
前端
136096757233 小时前
页面打不开不是 Nginx 的错
前端·后端
liangshanbo12154 小时前
高级前端面试题:package.json 常见字段
前端·json
CappuccinoRose4 小时前
输入事件进阶
前端·javascript·输入事件