session

- 로그인 페이지(/login)로 접속하면 HTML 소스에서 주석 처리된 계정정보를 확인할 수 있습니다.

- 해당 계정으로 로그인하면, 서버 측에서 `sessionId`를 발급해 줍니다.

- 문제 소스를 뜯어보면, 세션을 발급해주는 코드는
login()함수인데요. - 맨 아래
__main__메인 함수 실행 부분을 보면,os_urandom(1).hex()값으로 관리자 계정 세션이 저장되고 있습니다.- 로그인을 하지 않아도 관리자 세션 정보가 저장되고 있으므로, 악용이 가능해 보입니다.

index()함수를 보면, 현재 로그인 된 사용자의sessionId값을 통해 관리자 계정 여부를 확인하고 있습니다./경로는 홈페이지 좌측 상단의Session버튼 부분이고, 이 경로로 접근할 때 세션 값을 변조하면 되겠네요.

os.urandom(1).hex값은 1바이트 값을 HEX로 표현하는 것이기 때문에 15^2 만큼의 경우의 수가 존재합니다.- 버프스위트의 인트루더 기능을 사용하여 관리자 세션 ID를 쉽게 찾을 수 있습니다.

🐛.. 🐛.. 🐛..