会话认证漏洞

  • Session 劫持攻击
  • Session 固定攻击

挖掘经验

遇到的比较多的就是出现在cookie验证上面,通常是没有使用session来认证,直接将用户信息保存在cookie中

session劫持攻击

Session劫持攻击是指黑客劫持目标用户的session id来获取网站服务器上未经许可的存取信息,特别是窃取目标用户等的cookie数据,来取得网站的认可

攻击步骤

image.png

实例

image.png
image.png
image.png
得到一个session id
image.png
新建attack.php
image.png
劫持一个admin的session id,更改admin的book数量为2000
image.png
刷新member.php页面,book变为2000
image.png

修复方案

  • 使用随机而且长度够大的数字或字符串来当做session id
  • 将网页之间传递的数据使用某种形式进行封装,特别是session id
  • 更改session名称
  • 注销后即销毁session的所有数据

session固定攻击

session 固定攻击是因为黑客固定住目标用户的session id,因此目标用户所使用的session可有攻击者指定

攻击步骤

image.png

修复方案

  • 不要从GET/POST变量中接受session id
  • 调用session_start函数后,立即产生新的session id,并删除旧的session
  • 将session id存放在cookie内
  • 注销后即销毁session的所有数据
  • 使用时间戳来记录session的使用时间,如果两次session的相差时间太长,就销毁session的所有数据
  • 检查用户的IP地址,如果IP地址改变就产生一个新的session id,并且删除旧的session