문제
풀이
tmitter의 index 페이지는 위와 같다. 위는 로그인, 아래는 회원 가입으로 구성되어 있다.
회원 가입 소스코드를 확인하면 하단에 hint가 작성되어있다.
admin으로 회원가입을 진행해야한다. 라는 힌트를 준다.
필자는 이 문제를 직접 풀지 못했다. 너무 당연하게 생각했고, 안일한 생각이기도 하다.
우린 처음 문제를 다시 볼 필요성이 있다.
you need login with "admin"s id!
===========================
create table tmitter_user(
idx int auto_increment primary key,
id char(32),
ps char(32)
);
id, ps 는 32 byte 로 사용한다는 정보다.
위 테이블 구성을 보고 어떤 DB를 사용하는 지에 대한 판단을 해야한다. (MySQL 테이블 생성 형식이다.)
또한 mysql의 특징을 생각해야한다.
MySQL에서 문자열 컬럼에 저장할 수 있는 최대 길이를 초과하는 문자열을 삽입하려고 하면, 기본적으로 초과된 부분은 잘리고, 잘린 문자열이 저장된다.
예를 들어, VARCHAR(10) 필드에 12자의 문자열을 삽입하면 첫 10자만 저장된다.
그러면 이제 admin으로 회원가입을 진행해본다.
input box에 maxlength="40"으로 늘려 길이가 32 byte를 넘을 수 있도록 설정한다.
(물론 그냥 burpsuite을 사용하는게 편하다.)
32자리를 초과하는 39번째 자리에 1을 넣고, 회원가입을 진행한다.
(비밀번호는 1234567 로 설정하였다.)
이 후, admin / 1234567 로 로그인을 시도할 시, flag 를 얻을 수 있다.
'Dreamhack > Dreamhack(1단계)' 카테고리의 다른 글
session-basic (웹 해킹) (2) | 2024.10.16 |
---|---|
[wargame.kr] login filtering (웹 해킹) (0) | 2024.10.16 |
[wargame.kr] type confusion (웹 해킹) (0) | 2024.10.16 |
[wargame.kr] strcmp (웹 해킹) (0) | 2024.10.16 |
[wargame.kr] fly me to the moon (웹 해킹) (0) | 2024.10.15 |