Weak Seession IDs
Session介绍
当用户完成登录操作后,服务器端需要记录用户的状态,而形成一个新的会话(Session),一般会保存在Cookie中。用户保持在线的状态时,就会保持这个Session有效,若这个Session被攻击者盗取和利用,就能冒充有效的用户去操作。
漏洞危害
相关的漏洞:Weak Session IDs、XSS、CSRF
攻击思路:由于应用设置了弱SessionID,通过XSS被攻击者获得,则可以通过CSRF登录该网站去冒充用户操作。
DVWA
Low
应用防御措施
第一次点击按钮,应用生成dvwaSession=0放到cookie中,每次点击递增+1。
攻击方式
通过盗取本浏览器的Cookie,通过另外一个浏览器设置相同的Cookie值(需重新回到登录页),可以免登录进入该网站。
- 在Edge中点击设置dvwaSession值
- 在Firefox中设置相同的Session值免登录进入
Medium
防御改善
将dvwaSession值设置成时间戳,增加了随机性
攻击方式
通过捕捉用户点击的时间而推断出Session值,从而冒充登录
High
防御改善
对dvwaSession值进行md5加密,初始值是0,对0进行累加,用setcookie()函数规定了有效期、路径、域名
攻击方式
通过猜测用户的点击次数,以及md5值对照,可以推测出Session值
- 浏览器中的dvwaSession
- 对照13的md5值
impossible
防御改善
sha1(mt_rand() . time() . “Impossible”)
用了Mersenne Twister算法生成一个随机数,并加入当前的时间戳以及“impossible”字符进行sha1摘要算法处理作为SessionID。攻击者很难猜到该Session值。