본문 바로가기
CTF, 워게임 문제 풀이/webhacking.kr

webhacking.kr 29번 문제 풀이

by secumark 2022. 8. 30.
728x90

28번 문제에 이어.. 29번 문제도 뭔가를 업로드하는 문제다.

flag는 다른 테이블에 있단다.

 

 

ip, table은 잘라냄

 

아까 28번 문제를 풀 때 만들었던 .htaccess 파일을 업로드 해봤는데, 이렇게 시간과 ip, file명이 차례대로 뜬다. 결국 이것은,, sql injection으로 풀으라는건가,,

 

burp suite을 이용해서 제가 파일을 업로드할때 time, ip, file 이게 어떤 순서로 저장이 되는지? 한번 확인해봤다.

 

 

 ip가 노출되어서.. 다 캡쳐하진 못했다. 순서를 filename, time, ip로 해봤는데 바로 업로드에 성공해서 이 순서가 맞는거 같다. 

-> filename="file',1234,'내 ip주소'), ((SELECT database()),1234,'내 ip주소')#"

데이터베이스명을 알아냈다. ' " 를 어디에 넣어야할지 애매해서 한참 헤맸다 ㅠ

 

그리고 테이블명 알아냈다. 여기서 테이블명을 알아낼때 당연히 테이블이 여러개 있을 수 있으니까 group_concat을 사용해주는걸 까먹으면 안됨.

-> filename="file',1234,'내 ip주소'),((SELECT group_concat(TABLE_NAME) FROM information_schema.tables WHERE table_schema='chall29'),1234,'내 ip주소')#"

 

 information_schema.tables는 sql injection에서 자주 사용되는 데이터베이스다.

테이블 조회할때 주로 SELECT * FROM information_schema.tables 이 구문을 많이 사용한다.

 

이제 flag_congratz의 파일명만 알아내면 된다.

 

select flag from flag_congratz)를 입력했다. 

 

728x90

'CTF, 워게임 문제 풀이 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 33번 문제  (1) 2022.09.13
webhacking.kr 32번 문제  (0) 2022.09.05
webhacking.kr 28번 문제 풀이  (0) 2022.08.30
webhacking.kr 27번 문제 풀이  (0) 2022.08.30
webhacking.kr 26번 문제 풀이  (0) 2022.08.29

댓글