-
[Pragyan CTF] Kimi no Na WaCTF Writeup 2020. 2. 24. 17:29
[Kimi no Na Wa] http://ctf.pragyan.org:12000/index.php
Pandora 문제와 똑같이 로그인, 회원가입 폼이 주어져 있다.
회원가입 후 로그인 해보면 Pandora 문제와 같이 profile.php 페이지로 success 파라미터와 함께 접근된다.
success 파라미터에 SQL Injection을 시도해 보았지만, 아무런 반응이 일어나지 않는다.
로그인, 회원가입 폼에 SQL Injection 을 시도해 보았다.
아무런 반응이 일어나는 것 같지 않았지만, ' or true-- 로 가입 후 로그인하였다.
결과를 보니, query 문이 주어지고 SQL Injection이 가능하다는 것을 알 수 있다.
Injection Point는 username이다.
아래 구문을 이용하여 테이블을 알아냈다.
' union select table_name from information_schema.tables--
테이블은 kimimsg, kimiusers 가 존재한다.
테이블의 컬럼 명은 아래와 같은 구문으로 알아낼 수 있다.
' union select column_name from information_schema.columns where table_name='테이블명'--
[kimimsg] username, message, reciever
[kimiusers] username, password알아낸 테이블과 컬럼을 이용하여 값을 출력해보았다.
' union select message from kimimsg--
kimimsg 테이블의 message 컬럼의 값을 출력하면 flag 값인 것 처럼 출력된다.
p_ctf{new0b51}
하지만, 해당 값을 인증해 보면 잘못된 flag 이다.
문제를 다시 제대로 읽어보자.
한번에 모든 것을 배울 수 없다. 뭔가 flag를 한번에 볼 수 없다는 뜻인 것 같다.
' or true-- 구문에서 나온 결과 값의 갯수는 23개 이다.
출력되지는 않았지만 flag의 길이는 23으로 추측할 수 있다.
중복된 값이 제거되어 출력되는 것인지 알아보기 위해 다음 구문을 입력해 보았다.
(union과 union all의 차이는 중복 제거 유무의 차이이다.)
' union all select message from kimimsg--
23글자의 flag를 얻을 수 있었다.
flag 값을 깔끔하게 보기 위해서는 문자열 합쳐주는 group_concat을 이용할 수 있다.
' union select group_concat(message separator '') from kimimsg--
'CTF Writeup' 카테고리의 다른 글
[BSidesSF 2020 CTF] recipes (0) 2020.02.26 [BSidesSF 2020 CTF] had-a-bad-day (0) 2020.02.25 [Pragyan CTF] Pandora (0) 2020.02.24 댓글