复现关于dvwa的CSRF-token绕过实验
时间: 2023-06-11 17:08:40 浏览: 228
首先,我们需要在本地搭建一个DVWA环境。DVWA是一个漏洞练习平台,可以用于学习和测试Web应用程序的安全性。您可以从以下网站下载DVWA并进行安装:https://github.com/ethicalhack3r/DVWA。
接下来,我们需要绕过CSRF-token进行攻击。CSRF-token是一种防止CSRF攻击的措施,它是一个随机生成的字符串,用于验证请求是否来自合法的来源。在DVWA中,我们可以通过修改一个cookie来绕过CSRF-token。
下面是具体的攻击步骤:
1. 打开DVWA,登录并进入CSRF实验页面。
2. 在Chrome浏览器中打开开发者工具,切换到“Network”选项卡,勾选“Preserve log”选项。
3. 在实验页面中点击“View Source”按钮,查看页面源代码。
4. 在源代码中找到与CSRF-token相关的代码,我们可以看到以下代码:
```
<input type="hidden" name="user_token" value="<?php echo $_SESSION['user_token']; ?>">
```
5. 复制CSRF-token,它通常位于name="user_token"的input标签中,value属性的值为一个长字符串。
6. 在开发者工具中找到与此页面对应的请求,点击它打开请求详情。
7. 在请求详情中找到Cookie选项卡,找到名为“PHPSESSID”的cookie并复制它的值。
8. 使用一个新的浏览器标签打开一个在线表单生成器,例如:https://www.123formbuilder.com/free-form-templates/Online-Order-Form-3578911/。
9. 在表单生成器中创建一个POST表单,将请求方法设置为POST,并填写以下表单字段:
```
action: http://your-dvwa-site.com/vulnerabilities/csrf/
amount: 1000
```
10. 在开发者工具中找到此页面对应的请求,复制请求头中的所有内容。
11. 使用curl或其他工具发送POST请求,将以上内容作为请求头发送,例如:
```
curl -X POST 'http://your-dvwa-site.com/vulnerabilities/csrf/' \
-H 'Cookie: PHPSESSID=your-session-id-here' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Referer: http://your-dvwa-site.com/vulnerabilities/csrf/' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'Origin: http://your-dvwa-site.com' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Accept-Language: en-US,en;q=0.9' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' \
--data 'user_token=your-csrf-token-here&amount=1000&action=transfer'
```
12. 您应该会看到成功的响应。
总之,这个实验展示了CSRF攻击的危害性以及如何绕过CSRF-token进行攻击。在实际应用中,我们应该采取更加安全的措施来防止CSRF攻击,例如使用双重身份验证或者更加严格的CSRF-token验证。
阅读全文