今天继续给大家介绍渗透测试相关知识,本文主要内容是cookie详解,从网站开发和渗透测试的角度,讲解cookie的作用,IT小白可能无法看懂本文的全部内容,但是也可以从另一个角度了解cookie。
一、cookie作用
cookie用户标记用户信息,现代浏览器有时会有这样的功能,当我们第一次登录某个系统后,再次登录时,就会直接进入到系统内部,不需要再次输入用户名和密码,就可以直接登录。这是因为我们的浏览器存储了该网站的cookie,当我们向网站发送请求时,网站检测到了cookie,识别出我们的身份,于是就不需要我们再次输入用户名和密码认证了。
除此之外,我们在登录网站后,进行一些操作的时候,也会在请求数据包中携带cookie信息,这样可以帮助网站识别这些操作究竟是哪个用户的操作。使用cookie(或者session)识别用户身份是当前网站使用的主流手段。目前网站使用的HTTP协议,是一种无状态的协议,简单来说,就是客户端发送请求,服务器根据请求处理后给予应答。因此,服务器很难判断这些请求究竟是哪个用户发送过来的,通过IP地址等方式无法真正的区分不同的用户,因此我们必须使用cookie(或者session)。
二、cookie产生
并不是所有的网站都要求cookie。例如,我们简单的写一个Hello World的网站,就没有cookie,如下所示:
事实上,cookie由服务器产生,发送给客户端,并且要求客户端保留cookie,并且在数据包发送时携带。如下所示:
上图中的set-cookie属性,就是服务器给客户端发送的cookie。
三、cookie与浏览器
在一般情况下,浏览器会根据网页的设置和要求,来保存cookie,熊海CMS对于cookie时间保存代码如下所示:
当然,作为使用浏览器访问网站的客户端,我们也不必要非得听服务器的。服务器要求你存储3个月的cookie,如果你就是存2个月就删除,也不妨碍你下次登录(当然,你需要重新输入用户名和密码)。
例如,如果浏览器开启了无痕模式,那么浏览器也不会保存cookie。
此外,我们的浏览器非常智能,它只会向对应的网站发送对应的cookie。例如,它不会将CSDN的cookie在访问百度时发送出去。但是这种情况也有例外,由于浏览器是根据网站域名(IP地址)来判断,因此,如果多个网站在同一个域名上,那么浏览器就会认为这是同一个网站的数据,也就会在访问这些网站时,携带有所有这些网站cookie,例如,我把DVWA和熊海CMS两个网站同时放在一个网站上,那么访问结果如下所示:
从上图可以看出,我们的浏览器既发送了DVWA的cookie,也发送了熊海CMS的cookie。
相反的,如果一个相同的网站,但是我们可以有多个域名(IP地址)来访问,那么这时浏览器也不能认为这是同一个网站。例如,我们在访问DVWA时,如果该网站同时支持IP地址和域名,那么浏览器也会认为这是不同的网站。
四、cookie与session
与cookie很相似的一个东西被称为session,cookie与session最大区别在于cookie存储在客户端浏览器中,而session存储在服务端内存中。这就决定了session的安全性要比cookie要高,因为这避免了攻击者从客户端盗取cookie的可能性。由于cookie和session存储的不同,继而带来了cookie和session存储容量、失效时间上的差别。
此外,尽管session比cookie安全,但是由于session需要存储在服务器上,因此这会给服务器造成一定的负担。
五、Cookie与安全
cookie的存储和使用存在风险。因为cookie对于用户而言,是登录网站、记录身份的“钥匙”。因此,一旦cookie被攻击者窃取,攻击者就可以冒充该用户的身份登录系统,且不需要网站的用户名和密码。如果站点本身存在XSS漏洞,那么攻击者可以通过该漏洞获取到用户的cookie。即使站点本身不存在任何问题,攻击者如果攻击了用户的个人设备,也可以拿到用户存储在浏览器中的cookie。
事实上,用户本地存储的cookie被窃取,然后被攻击者利用,责任和原因在于用户本身。但是考虑到很多上网用户缺乏相关的知识,甚至在看这篇文章前,根本不知道cookie是什么,因此我们又不能把责任推给用户。这就要求很多网站,特别是很多安全性要求高的网站,能够保证即使攻击者拿到了cookie,也无法登录系统。很多网站会检测用户登录时的IP地址(根据地理位置可以大致定位)、浏览器信息、系统信息等等信息。普通的用户如果今天在北京登录,明天跑到了广东,登录使用的浏览器、系统全部发生了改变,那么我们就可以大致认为这个用户可能被“盗号”了。这时很多服务商会给用户的注册手机号发送短信验证码,要求用户“证明”自己的身份。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200