> 백엔드 개발 > PHP 튜토리얼 > SESSION固定攻击的前提?

SESSION固定攻击的前提?

WBOY
풀어 주다: 2016-06-06 20:09:30
원래의
938명이 탐색했습니다.

攻击者提供一个包含已知会话ID的链接例如:<a href="login.php?PHPSESSID=1234">点击</a>,来诱使受害人点击这个链接,用户点击链接后可能会进行一系列操作,然后攻击者再使用这个会话ID登陆网站,从而劫持用户的会话,造成SESSION固定攻击。
但是一般php的设置session.use_cookiessession.use_only_cookies都为1,也就是攻击者不能通过url传递会话ID的方式劫持SESSION,在这种情况下,还有可能造成SESSION固定攻击吗?

回复内容:

攻击者提供一个包含已知会话ID的链接例如:<a href="login.php?PHPSESSID=1234">点击</a>,来诱使受害人点击这个链接,用户点击链接后可能会进行一系列操作,然后攻击者再使用这个会话ID登陆网站,从而劫持用户的会话,造成SESSION固定攻击。
但是一般php的设置session.use_cookiessession.use_only_cookies都为1,也就是攻击者不能通过url传递会话ID的方式劫持SESSION,在这种情况下,还有可能造成SESSION固定攻击吗?

可以自己重写session,方便对各种规则进行设定校验。

难道不校验IP和安全HASH的么

假设当前用户的实际SESSION PrimaryKey为hash(ip+uid)。则$_SESSION[md5(ip.uid)]['login']

首先分析下Session固定攻击产生的根本原因:

  1. 攻击者成功获取到了一个固定的sessionID;

  2. 攻击者使用某些方法让被攻击者以获取到的已知sessionID作为被攻击者的sessionID请求了服务端并执行授权操作;

  3. 攻击者以获取到的session ID请求服务端以获得和被攻击者相同的授权。

这里的重点在于“2”,(在服务端支持GET session的情况下)通过一个URL诱使被攻击者点击是最直接的方式,但最终目的是让被攻击者“携带已知sessionID”请求服务端,开启session.use_only_cookies的情况下还是保留了使用cookie“携带已知sessionID”请求服务端的方式,这种情况下攻击者只需要“使用某些方法”(比如XSS)修改cookie值为已知sessionID就能达到相同效果。最终的防御方式还是应该在每次授权改变后重新分配sessionID。
答案参考:https://www.douban.com/note/299072454/

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿