문제 설명

admin이라는 ID로 로그인하는 문제


서버 생성해서 접속했더니

 

모티브가 트위터인 듯

로그인 버튼/회원가입 버튼이 각각 있다.

Sign in
Sign Up

 

회원가입 창이 있으니 임의의 ID PW로 회원가입을 먼저 해 본다. 

회원가입 후 로그인까지 해 보니, 

이렇게 나름 SNS처럼 뜬다. 

hello world 쳐서 Tmeet 해 보니까

대충 이렇게...

여기서 힌트를 얻을 건 없어 보임.

우측 상단 Find People/Settings/Helps 다 눌러 봐도 Not yet이라고 함. 

 

문제에서 요구하고 있는 게 admin으로 로그인하는 거니까, admin이라는 회원 정보가 이미 존재하는지 회원가입을 시도해 보겠다. 

이미 존재하는 ID. 그렇다면 패스워드를 알아내서 로그인을 해야 한다.

 

<head>
 <style>
  body {background-color:#eef;}
  table td {text-align:center; background-color:#dde;}
  .ex {text-align:left; color:#99a; font-size:9pt;}
 </style>
 <script>
  function chk(f){
   if(f.id.value.length<4){alert("chk id"); return false;}
   if(f.ps.value.length<7){alert("chk ps"); return false;}
   return true;
  }
 </script>
</head>
<body>
<center>
 <img src="./tmitter.png">
 <form onsubmit="return chk(this);" method="post">
  <table>
   <tr><td>ID</td><td><input type="text" name="id" maxlength="32"></td><td class="ex">at least 4char</td></tr>
   <tr><td>PS</td><td><input type="password" name="ps" maxlength="32"></td><td class="ex">at least 7char</td></tr>
   <tr><td colspan=2><input type="submit" value="join"></td></tr>
  </table>
 </form>
</body>
<!-- hint : you need join with admin -->

소스코드를 열어 봐도 감이 안 와서 구글링의 힘을 조금 빌렸다. 

mysql에서 id의 데이터 타입은 고정 문자열이라 더 큰 문자열 입력하면 뒤에 문자열 잘려서 입력됨.

→ admin + 공백 26글자 + 아무 문자 1개 넣어 주면 해당 문자가 잘린 채 admin으로 저장됨.

이렇게 하려면 총 33글자인데..

소스코드에서 maxlength가 32로 제한되어 있음

 

이를 관리자 도구에서 33으로 수정해 준 뒤

 

위에서 말한대로

admin                           a 로 회원가입을 해 보겠다. 

 

회원가입에 성공함

로그인을 시도해 보니,

이렇게 admin 계정으로 뜬다! 

사실 내가 자꾸 공백 칸 한 개씩 빼먹어서 그냥 admin a로 로그인 되길래... 애먹었는데 공백 개수 다시 점검하고 했더니 잘 된당

풀이 성공~

'SWUFORCE > 워게임 풀이' 카테고리의 다른 글

[wargame.kr] md5 password (web)  (0) 2024.10.01
[wargame.kr] type confusion (web)  (2) 2024.10.01
[wargame.kr] strcmp (web)  (0) 2024.09.24
[Dreamhack] Broken Password (misc)  (0) 2024.08.27
[Dreamhack] rev-basic-0 (reversing)  (0) 2024.08.27

+ Recent posts