Challenge 29 시작!!
파일 업로드 기능이 있고 세 컬럼이 있는 테이블이 존재했다.
파일을 하나 업로드 해보았다.
그 결과, 다음과 같이 업로드 한 파일에 대한 정보가 출력되었다.
파일명을 제외한 time 과 ip 는 자동으로 생성해주고 있었다.
time 은 업로드 한 시간이었고, ip 는 외부 ip 주소였다.
프록시 툴을 통해 이 값을 변경해서 보낼 수 있는 지 확인해보자!
그러기 위해서는 일단 입력하는 컬럼의 순서를 알아내야 한다.
여러번의 입력끝에 아래와 같이 (파일명, 시간, ip) 순으로 입력되는 것을 알 수 있었다.
ip 는 외부 ip 로 입력했을 때만 가능했다.
그리고 시간은 1970-01-01 09:00:00 에서 입력한 숫자만큼 추가되고 있었다.
이제 컬럼 순서를 알아냈으니 이를 이용하여 쿼리를 입력해보자!
이 때, insert 문을 통해 중복 입력이 가능한 취약점을 이용한다.
먼저, DB 명을 알아내자!
DB 명은 chall29 이다.
다음은 테이블 명을 알아내자!
두 테이블이 존재했는데 FLAG 는 flag_congratz 에 있을 것 같다.
flag_congratz 테이블의 컬럼을 알아내자!
컬럼 이름은 flag 이다.
이제 이 컬럼에서 값을 조회하면 FLAG 값이 나올 것이다.
FLAG 값이 나왔다. Auth 에 인증해보자!
성공!!
'WarGame > webhacking.kr' 카테고리의 다른 글
Challenge 33 (0) | 2020.03.05 |
---|---|
Challenge 32 (0) | 2020.03.02 |
Challenge 28 (0) | 2020.02.29 |
Challenge 27 (0) | 2020.02.28 |
Challenge 26 (0) | 2020.02.27 |