-
Dreamhack - sessionwargame/Dreamhack 2024. 9. 25. 23:58
[Beginner - session - web]
쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스가 주어진다.
admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있다고 한다.
문제 파일을 다운로드 받으면 위와 같이 app.py가 있다.
여기서 가장 중요한 코드는 os.urandom(1).hex()인데 1바이트의 랜덤값을 생성한 후 이를 16진수로 바꾸는 코드이다.
즉, session_storage에 저장되는 admin의 session_id값은 두자리다.(1바이트는 8비트고, 4비트가 16진수 하나로 표현됨)
문제 환경에 접속하면 가장 처음 나오는 페이지다.
BurpSuite로 프록시 탭에서 intercept on으로 바꿔준 뒤 open browser 해주고 아까 위에 코드에서 본 guest 정보로 로그인한다.
forward를 눌러 위와 같은 화면이 나왔다.
조금 전의 프록시 탭 코드 부분에서 우클릭 Send to Intruder를 눌르면 위와 같은 화면을 볼 수 있다.
여기서 sessionid 부분(브루트포싱할 타겟)을 드래그한 뒤 옆에 Add$를 눌러준다.
payloads 부분에서는 type을 Brute forcer로 바꿔주고, Character set은 16진수 범위인 abcdef0123456789를 입력한다.
그리고 앞서 확인했듯, sessionid의 값은 두자리이므로 Min length와 Max length를 모두 2로 입력한다.
이제 우측 상단에 있는 Start attack만 누르면 된다.
총 256가지로 브루트포싱하는 화면이다. 일반적인 response의 length가 모두 1417로 나오고 있다.
response의 length가 1505인 부분이 등장했다. response 데이터에 플래그값이 함께 담겨있기 때문이다. 이를 더블클릭해서 response탭을 누르면 위와 같이 DH{} 형식의 플래그값을 볼 수 있다.
플래그를 획득했다!
'wargame > Dreamhack' 카테고리의 다른 글
Dreamhack - proxy-1 (0) 2024.10.08 Dreamhack - simple-web-request (0) 2024.10.08 Dreamhack - php7cmp4re (1) 2024.09.25 Dreamhack - Flying Chars (0) 2024.09.24 Dreamhack - web-misconf-1 (2) 2024.09.24