Cookie与session
-
有状态会话与无状态会话:
当我们登陆网站的时候,会输入用户名及密码等信息。
当在无状态会话场景时,我们每次打开此网站均需要输入信息进行验证。
有状态会话场景时,当第一次验证通过后,服务器会在http响应包中发送一个此用户唯一的信息(cookie)便于下次登陆无需再次验证。 -
Cookie: Cookie按照存储的位置可以分为:硬盘Cookie和内存Cookie
硬盘Cookie:Cookie信息存储在客户端的硬盘中,由服务器设置过期时间。除非由用户清理或者过期否则硬盘Cookie不会被清除。
内存Cookie:Cookie信息存储在客户端内存中,随着浏览器关闭后就会消失。 -
session:
session与cookie的作用相同,也是用于服务器验证用户。不同的是,session信息存储在服务器,当用户打开网站到关闭网站即为一个session。浏览器关闭后,session也将注销。
服务器通过SESSIONID来识别不同的用户,SESSIONID可以包含在http响应中的cookie的值中。 -
Cookie和session的区别就是存储的位置,Cookie存储在客户端;session存储在服务器,客户端仅存储一个SESSIONID
一、原理
由于后台程序对输入框的内容过滤不完善导致后台程序将用户输入恶意的JavaScript代码返回给浏览器,浏览器执行。
二、分类
- 反射型XSS
反射型XSS即只有用户点击连接后触发 - 存储型XSS
黑客构造好XSS代码并将这些恶意代码填到留言板等地方并发表,这些恶意代码存储到后台数据库中,所有访问留言板的用户均会受到攻击。 - DOM型XSS
三、绕过
-
注意标签的闭合
当构造的代码在<title>,<textarea>
等标签中时,需要考虑将这些标签闭合然后再将构造的代码加在后边。在div标签中可以不用闭合。 -
大小写绕过
有些使用了一些函数过滤script关键字,可以考虑ScriPt等随意改变只要与script不同即可 -
双写绕过
有些过滤看到script会将其删除可以进行双写,如scRiscriptpt进行绕过 -
图片标签加事件绕过
<img src=# onerror=alert('xss')>)
四、漏洞利用
- 修改网页内容
- 盗取cookie
- XSS蠕虫
- 网站挂马
- 重定向
五、DVWA、XSS反射型
Low级别
直接输入<script>alert('xss');</script>
进行测试
medium级别
依旧输入之前的测试代码进行测试,发现将script标签过滤
尝试大小写绕过<scripT>alert("xss");</sCript>
尝试双写绕过<sc<sc