参考答案
会话固定攻击:
英文全称 session fixation attack。
正常来说,只要你不关闭浏览器,并且服务端的 HttpSession 也没有过期,那么维系服务端和浏览器的 sessionid 是不会发生变化的,而会话固定攻击,则是利用这一机制,借助受害者用相同的会话 ID 获取认证和授权,然后利用该会话 ID 劫持受害者的会话以成功冒充受害者,造成会话固定攻击。
会话固定攻击的流程:
以淘宝为例:
- 攻击者自己可以正常访问淘宝网站,在访问的过程中,淘宝网站给攻击者分配了一个 sessionid。
- 攻击者利用自己拿到的 sessionid 构造一个淘宝网站的链接,并把该链接发送给受害者。
- 受害者使用该链接登录淘宝网站(该链接中含有 sessionid),登录成功后,一个合法的会话就成功建立。
- 攻击者利用手里的 sessionid 冒充受害者。
在这个过程中,如果淘宝网站支持 URL 重写,那么攻击还会变得更加容易。
什么是 URL 重写?
即用户如果在浏览器中禁用了Cookie,那么sessionid 也不能使用了,所以有的服务端就支持把 sessionid 放在请求地址中:
http://www.taobao.com;jsessionid=xxxxxx
如果服务端支持这种 URL 重写,那么对于攻击者来说,按照上面的攻击流程构造一个这种地址,极其简单。
这种请求地址大家在 Spring Security 中很少见,在 Shiro 中可能偶尔见到过。
以上,是网络安全面试题【什么是会话固定攻击】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—