Zixem 6단계-blind sql
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
6단계 웹페이지다.
serial id가 11인 teacher의 자세한 정보를 가져오는 게 목표이다.
또한 이미지 파일이 두 개가 있으며 하나는 정답에 관한 이미지 파일이며, 나머지는 오답에 관한 페이지다.
또한 메타데이터에 접근할 수 없다.
일단 각 이미지 파일을 보자.
일단 컬럼수부터 찾아보자.
쿼리: ?serial=10 order by 5--+-
5일 때는 오류가 났지만 4일 때 오류가 나지 않았다.
따라서 칼럼은 4개이다.
참고로 serial=11 주입은 막혀있다.
쿼리: ?serial=11
systables로 접근하는 방법도 시도해봤지만 먹히지 않았다.
그래서 다른 분들의 글을 좀 봤는데 테이블명을 추측하고 있었다.
..?
일단 새로운 시도에 대해 배운 거 같다.
쿼리: ?serial=9 union select 1,2,3,4 from teachers
여러 가지 추측에 대한 시도 끝에 테이블 이름을 맞출 수 있었다.
이제 칼럼에 대한 이름을 추측하자..
쿼리: ?serial=9 union select id,teacher,teacher_age,price from teachers
모든 칼럼명을 추측해냈다.
하지만 현재 페이지에서 로드하고 있는 정보는 id가 10인 값이고, 우리는 id가 11인 정보를 추출해야 한다.
따라서 조건절을 추가해주자.
쿼리: ?serial=9 union select id,teacher,teacher_age,price from teachers where id=11
우리가 찾던 그 페이지가 출력되었다.
문제 해결!
시행착오&느낀 점
1. 칼럼명, 테이블명을 찾을 때 수동으로 추측하는 방법에 대한 시도를 처음 접했다. 무언가 내가 생각해오던 해킹과 이질적인 느낌이 들었다.