문제 설명
admin이라는 ID로 로그인하는 문제
서버 생성해서 접속했더니
모티브가 트위터인 듯
로그인 버튼/회원가입 버튼이 각각 있다.
회원가입 창이 있으니 임의의 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 |