[wargame.kr] tmitter 풀이
2022. 2. 3. 10:07ㆍDreamhack Wargame
728x90
처음에는 무슨 문제인가 싶어서 소스부터 뜯어봤습니다.
맨 아래에 hint라며 주석 처리된 문장이 있습니다.
admin으로 로그인하면 문제가 풀리는 형식인 것 같은데, 어떻게 로그인을 할지가 문제입니다.
우선 사이트의 구동 형식이라도 알아야 할 것 같아서, 임의의 계정을 만들어 로그인을 해봤습니다.
블로그 방명록을 작성하는 형식으로 구동되는 홈페이지인 것 같습니다.
작성 칸에 무언갈 작성 후 버튼을 눌러봐도 달라지는 것 없었습니다.
그렇다면 역시 Sign Up 페이지에서 취약점이 발생하는 것 같습니다.
DB 부분에서 취약점이 발생하는 것 같기에, 우선 기본적인 DB 문법부터 살펴봤습니다.
필자는 DB 문법에 대해서는 거의 아는게 없습니다. ^ㅁ^... 공부해야지
https://velog.io/@taeha7b/mysql-in-a-nutshell
그러다가 문제 정보에서 준 코드가 MySQL 코드라는 걸 알게 되었습니다.
코드에 나온 함수들을 하나하나 찾아보다 보니, VARCHAR과 CHAR의 차이점도 알게 되었습니다.
VARCHAR : 인자 값으로 10을 넣고 2byte 문자열을 넣게 되면 2byte의 데이터를 할당.
CHAR : 인자값으로 10을 넣고 2byte 문자열을 넣게 되면 10byte의 데이터를 할당.
그렇다는 건, 받는 길이와 CHAR의 인자 값을 바꿔주면 제한 없이 문자열을 입력할 수 있게 된다는 뜻입니다.
CHAR로 받을 수 있는 최대 길이가 32이므로, 앞에 admin을 붙이고 32byte가 넘는 길이의 ID를 입력해주면 되겠습니다.
ID : admin hello
PW : 123456789
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 |