이번 포스팅에서는 normaltic님께 제공받는 인증 우회 문제에 대한 풀이를 해보겠습니다.
admin으로 접속해야하는 문제이고, doldol이라는 ID와 dol1234라는 비밀번호가 제공됩니다. 일단 정보가 필요하기 때문에 로그인까지 해보고 히스토리를 살펴보겠습니다.
데이터는 GET 메소드로 전달하고, 로그인하는 경우 상태코드 302, index.php로 리다이렉트하는 것을 알 수 있습니다. 그런데 로그인을 성공하는 페이지에 응답에서 중요한 정보를 찾았습니다.
Set-Cookie: loginUser=doldol 부분으로 이 페이지는 쿠키에 유저의 ID를 저장하는 페이지라는 점을 알았습니다. 실제 index.php의 요구 부분을 보니 쿠키 ID가 doldol로 되어있는 것을 확인했고, 해당 부분을 Repeter로 보내서 ID를 doldol에서 admin으로 바꿔보았습니다.
성공적으로 flag를 획득했습니다.
이번에는 핵미사일 버튼을 눌러야한다는것 외에는 별다른 정보가 주어지진 않았습니다. 해당 사이트에 들어가서 버튼을 눌러보니 관리자 코드가 필요한 것을 알 수 있었습니다. 히스토리로 정보를 살펴보니 데이터는 GET 메소드로 전달하는데 그 외에는 특별한 점이 없습니다. 쿠키 부분을 써먹기도 어려워 보이는데 잘 살펴보니 웹 사이트 이름이 특이합니다.
step1.php에서 버튼을 누르고 넘어가니 step2.php로 넘어가는 것을 확인할 수 있었습니다. 그래서 혹시나 하는 생각으로 url창에 직접 step3.php로 접근해보니
성공적으로 발사버튼을 누르고 flag를 획득했습니다.
로그인 페이지이고, admin 계정으로 로그인해야 합니다. ID는 doldol, pw는 dol1234라는 정보가 주어졌습니다. 일단 로그인을 해봤는데
응답 부분에 성공하면 ok, 실패하면 fail이 나오는 것을 확인했습니다.
id를 admin으로 주고, 응답을 가로채서 fail 부분을 ok로 바꿔보겠습니다.
그랬더니 다른 요청을 보내고 이상하게도 다시 로그인 화면으로 돌아왔습니다. 이번에는 해당 요청에서도 응답을 가로채보겠습니다.
location 스크립트를 이용해서 강제로 로그인 페이지로 보내는 코드가 존재했습니다. 해당 코드를 지우고 다시 보내면
성공적으로 flag 획득했습니다.