2012-12-21 8 views
2

보안 취약점 테스트 중에 클라이언트는 사용자가 성공적으로 시스템에 로그인 한 후 세션 ID, 특히 ASP.NET_SessionID 쿠키 값을 변경하도록 응용 프로그램에 요청했습니다. 이것은 아마도 세션 고정을 해결할 수 있습니다. 세션 ID가 변경되면 session_end 이벤트가 발생하여 세션 (시스템)이 다시 시작되어 다시 로그인 페이지로 리디렉션됩니다. 이 모든 것을 일으키지 않고 세션 ID를 변경할 수있는 방법이 있습니까?세션 ID를 세션 고정에 가장 적합한 솔루션으로 변경하고 세션 ID를 변경하면 Session_End 이벤트가 발생하는 이유는 무엇입니까?

해결 방법을 제안하십시오.

+0

분산 캐시 공급자 또는 StateServer 또는 SQL Server와 같은 OutProc 저장소로 세션을 내보내고 나중에 ID를 변경하고 세션을 복원 한 다음 새 ID로 세션을 연결하지 마십시오. 그러면 ID가 변경되고 사용자 –

+1

@KevinRyan : 로컬 컴퓨터 (inProc 저장소)에서 먼저 수행하려고했던 작업입니다. 그러나 세션 ID를 변경하면 session_end 이벤트가 발생합니다. – Milla

답변

0

위대한 질문입니다. 사람들이 세션 고정을 방지하기 위해 세션 ID를 변경하는 것에 관해 이야기 할 때, 그들은 일반적으로 sessionId가 세션을 인수하기에 충분한 것으로 알고있는 Java 프레임 워크에서 발생하는 취약점을 염두에 둡니다.

그러나 ASP.NET은 다른 짐승입니다. ASP.NET에는 sessionId와 ASPXAUTH 쿠키가 있습니다. 당신이 구글 주변에 있다면, 당신은 여전히 ​​세션 고정 가능성이 있다는 부당한 주장을 발견 할 것이지만, 아무도 그걸 어떻게 이용하는지 보여주지 못하기 때문에 나는 확신하지 못한다. 그것이 악용 될 수 있다는 증거를 찾은 가장 가까운 것은 this blog입니다. 이는 적어도 말하기에 통찰력이 있습니다. 블로그는 ASP.NET에서 빈약 한 구현을 식별합니다. 프레임 워크는 sessionId와 ASPXAUTH가 동일한 사용자와 연결되어 있는지 확인하지 않습니다 (개발자가 명시 적으로이 체크를 추가하지 않는 한). 하지만 악용 될 수 있습니까? 개발자가 세션 고정보다 악용 가능성이있는 잘못된 작업을 수행 한 경우 악용 될 수있는 경우를 생각할 수도 있지만 그렇지 않으면 의심 스럽습니다.

자세한 조사가 필요한 주제입니다. 나는 나의 대답이 너의 필요에 너무 늦게 오는 것을 알지만, 어쨌든 나는 따라 할 것이라고 생각했다. 결론 : 로그인 후 sessionId를 변경해도 추가 보호 기능이 제공되지 않는 것 같습니다. 당신의 pentesters가 다르게 생각한다면, 나는 그들에게 나에게 그것을 설명하도록 초대 할 것입니다.

관련 문제