article thumbnail image
Published 2021. 9. 19. 20:48

tmitter 문제를 보아하니 admin으로 로그인을 성공시켜야 하는 문제인거 같다.

tmitter_user 테이블에 id와 ps가 char(32) 값으로 정해져있는것을 확인할 수 있다.

 

처음에 sql injection으로 생각하고 접근을 해보았는데 Login failed로 접근이 제한 되는 것을 확인하니 인젝션 관련 문제는 아닌거 같다. 그 다음 회원가입을 시도해보았다.

 

 회원가입을 시도 할 때, admin은 이미 존재했고 우회를 시도해보았는데 특수문자 값이 모두 null로 치환되어 admin으로 인식하는 듯 보였다. 하지만, 처음 id 와 ps 값이 32자로 고정되어 있는것을 확인 할 수 있었는데 char라는 함수에 대해서 알아야 한다.

 

char형은 고정 사이즈로 위와 같이 32자로 고정이 되어 있으면 32자 외에는 검증을 하지 않게 된다. 그렇게 되면  'admin               1'(33자) 입력시 나머지가 공백으로 채워지면서 1앞의 32자 까지만 검증을 하게 되기 때문에 admin으로 중복 가입이 된다.

 

위 사진과 같이 maxlength를 32 -> 33으로 바꿔주고  'admin               1'(33자)으로 가입시 32자만 검증을하게 되서 admin으로 가입할 수 있게 된다.

 

가입한 admin으로 로그인 하면 아래와 같이 flag 값을 얻을 수 있다.

'워게임 > Wargame.kr' 카테고리의 다른 글

Wargame - web chatting  (0) 2021.09.26
Wargame - type confusion  (0) 2021.09.19
Wargame - pyc decompile  (0) 2021.07.05
Wargame - fly me to the moon  (0) 2021.07.05
Wargame - login filtering  (0) 2021.06.28
복사했습니다!