-
[Webhacking.kr] 53번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 22:35
hello world만 출력되어 있다.
소스를 보자.
hidden_table의 값을 get 방식으로 전송해주면 문제가 풀린다.
val의 값은 union 등의 문자열이 필터링되어 있고 쿼리문을 살펴보면 '가 없다.
숫자인 것으로 추측할 수 있다.
val 값을 입력해보자.
1. val = 1
2. val = 2
3. val = 3
4. val = 4
5~ 의 숫자에는 페이지에 아무것도 출력되지 않는다.
데이터가 4개인 것으로 추측해본다.
우선 MySQL을 통해 테이블 명을 알아보자.
num_53이라는 테이블을 생성하였다.
1. information_schema
select test1 from num_53 where test2=1
union select table_name from information_schema.tables;
. . . . . .
test1의 결과와 information_schema의 table_name이 함께 출력되어 테이블 명을 알아낼 수 있다.
(단, union 사용 시 필드 개수, 형식이 동일해야 한다.)
[ information_schema ] https://poqw.tistory.com/24
2. procedure analyse (내장 함수)
select test1 from num_53 where test2=1 procedure analyse();
Field_name을 보면 DB명.Table명.Field명의 형식으로 출력한다.
[ procedure analyse ] https://hyunmini.tistory.com/46
다시 문제로 돌아가면 val 값에는 union, select, from이 필터링되어 있다.
SQL 내장함수인 procedure analyse를 사용하여 hidden_table의 값을 알아내야 한다.
val=1 procedure analyse()
DB명.Table명.Field명 의 형식으로 출력되었다.
hidden_table은 Chal12NGe_53_TabLE_zz 이다.
알아낸 테이블 명인 Chal12NGe_53_TabLE_zz를 get 방식으로 answer로 보내주거나,
challenge53 TABLE NAME에 입력해주면 문제가 풀린다.
'Wargame > webhacking.kr (old)' 카테고리의 다른 글
[Webhacking.kr] 55번 풀이 (0) 2019.05.08 [Webhacking.kr] 54번 풀이 (0) 2019.05.08 [Webhacking.kr] 52번 풀이 (0) 2019.05.08 [Webhacking.kr] 51번 풀이 (0) 2019.05.08 [Webhacking.kr] 49번 풀이 (0) 2019.05.08 댓글