[wargame.kr] tmitter 풀이

2022. 2. 3. 10:07Dreamhack Wargame

728x90

문제 제목
문제 정보
메인 페이지
Sign in
Sign Up

처음에는 무슨 문제인가 싶어서 소스부터 뜯어봤습니다.

 

Sign Up Source

맨 아래에 hint라며 주석 처리된 문장이 있습니다.

admin으로 로그인하면 문제가 풀리는 형식인 것 같은데, 어떻게 로그인을 할지가 문제입니다.

 

우선 사이트의 구동 형식이라도 알아야 할 것 같아서, 임의의 계정을 만들어 로그인을 해봤습니다.

 

임의의 계정을 생성하고 로그인

블로그 방명록을 작성하는 형식으로 구동되는 홈페이지인 것 같습니다.

작성 칸에 무언갈 작성 후 버튼을 눌러봐도 달라지는 것 없었습니다.

 

그렇다면 역시 Sign Up 페이지에서 취약점이 발생하는 것 같습니다.

DB 부분에서 취약점이 발생하는 것 같기에, 우선 기본적인 DB 문법부터 살펴봤습니다.

 

필자는 DB 문법에 대해서는 거의 아는게 없습니다. ^ㅁ^... 공부해야지

 

https://velog.io/@taeha7b/mysql-in-a-nutshell

 

MySQL 기초 문법 정리

MySQL 기초 문법 간략 정리

velog.io

 

그러다가 문제 정보에서 준 코드가 MySQL 코드라는 걸 알게 되었습니다.

코드에 나온 함수들을 하나하나 찾아보다 보니, VARCHAR과 CHAR의 차이점도 알게 되었습니다.

 

VARCHAR : 인자 값으로 10을 넣고 2byte 문자열을 넣게 되면 2byte의 데이터를 할당.
CHAR : 인자값으로 10을 넣고 2byte 문자열을 넣게 되면 10byte의 데이터를 할당.

 

그렇다는 건, 받는 길이와 CHAR의 인자 값을 바꿔주면 제한 없이 문자열을 입력할 수 있게 된다는 뜻입니다.

CHAR로 받을 수 있는 최대 길이가 32이므로, 앞에 admin을 붙이고 32byte가 넘는 길이의 ID를 입력해주면 되겠습니다.

 

ID : admin                                              hello
PW : 123456789

 

위의 계정으로 로그인
FLAG 획득 완료
문제 풀이 성공

 

728x90

'Dreamhack Wargame' 카테고리의 다른 글

sint 풀이  (0) 2022.05.31
patch 풀이  (0) 2022.05.30
login-1 풀이  (0) 2022.01.06
[wargame.kr] strcmp 풀이  (0) 2022.01.06
[wargame.kr] login filtering 풀이  (0) 2022.01.01