DVWA通关教程2
本博客所有网络安全相关教程、漏洞原理、渗透实操、攻防技术等内容,仅用于合法安全学习、白帽技术交流、企业授权安全测试。
所有技术严禁用于未授权探测、非法入侵、数据窃取、网络攻击等任何违反《中华人民共和国网络安全法》的违法行为。
任何个人利用本文内容实施违规操作,所产生的一切法律责任与后果均由当事人自行承担,与本人无关。
倡导正向网络安全学习,坚守白帽底线,共建清朗网络环境。
一、 Weak Session IDs
Weak Session IDs(弱会话 ID) 指网站生成的会话令牌(Session ID)可预测、熵值低、易被猜测或遍历,导致攻击者无需密码即可劫持 / 冒充用户会话。
基本概念
- Session ID:用户登录后服务器生成的唯一身份凭证,通常存于 Cookie(如 PHPSESSID、dvwaSession),后续请求携带即可保持登录。
- Weak Session IDs:生成逻辑弱(如自增、时间戳、简单哈希),可被预测 / 枚举,直接导致会话劫持、账号接管。
按 F12 打开浏览器开发者工具,切换到Application标签:
左边找到 Cookies → 点击 http://127.0.0.1(或你的 DVWA 地址)。
在右侧列表里找到Cookie:dvwaSession,记住它的Value。
点击页面上的Generate 按钮。
刷新一下开发者工具里的 Cookie 列表,看 dvwaSession 的值。
比如第一次是 1,再点一次变成 2,再点变成 3,这就是每次 + 1 的自增。
预测并修改会话 ID
这里由于我之前点击过几次,现在 dvwaSession 的值是 5,说明规律是 1,2,3,4,5...。
在开发者工具里,双击 dvwaSession 的 Value,把5改成7,按回车。
刷新页面(按 F5)
如果页面正常显示,没有报错,说明你用了 7 这个会话 ID,成功劫持了 “下一个用户” 的会话。
也可以改回 1、2,看是不是也能正常访问,验证自增规律。
二、DOM Based Cross Site Scripting (XSS)
DOM Based XSS 是一种纯前端触发的跨站脚本漏洞,不需要服务器参与,直接通过修改页面的 DOM 结构执行恶意脚本。
#payload <scipt>alert(1)</script>选择一个,url里面有回显,构造payload,回车,就能看到弹窗;
DOM Based XSS 的核心:
- 页面 JavaScript 会读取 URL 参数 / Location.hash 等前端可控值;
- 直接把值写入 DOM(比如 document.write、innerHTML、eval),没有做任何过滤;
- 攻击者构造恶意 URL,用户访问后,脚本在浏览器里执行。
DOM XSS 与反射型 / 存储型 XSS 的区别:
- 反射 / 存储型:需要服务器把恶意脚本返回给浏览器;
- DOM 型:仅在前端通过 JavaScript 处理 URL 参数,服务器不参与恶意脚本的传递。
三、Reflected Cross Site Scripting (XSS)
直接在输入框里输入payload,提交,就能出现弹窗。
四、Stored Cross Site Scripting (XSS)
这里我第一次进行尝试时,显示guestbook表不存在,这是由于数据库中没有这个表,可能是在搭建时丢失了我就在phpmyadmin里创建里这个表,再进行尝试;
这里在message里输入payload;
出现了弹窗;
四、JavaScript Attacks
将token改为md5(rot13("success"))的计算结果,将phrase改为success;
点击放行;
五、Authorisation Bypass
目前是管理员身份
记住以下路径
根据提示,以gordonb身份登录,
发现缺少了一栏,此时的身份是gordonb而不是admin
此时我们访问方才的路径,我们发现成功绕过,此时的身份是gordonb。
六、Open HTTP Redirect
不安全重定向漏洞,目标是利用后端的跳转逻辑,把用户引导到你指定的任意外部网站。
点击第一个链接,跳转,而且url里有参数;
查看网页源码,跳转地址直接从 URL 参数里取,没有做白名单校验:
也就是说,你传什么 url 参数,它就跳转到哪里,不会检查是不是 DVWA 自己的地址。
将源代码进行修改,修改完后再次点击链接1,就会跳转到百度页面!
七、Cryptography Problems
将下面的密文放在上面的输入框,解密一下;
将得到的结果作为密码输入,点击登录就可以了。
