SQL injection/Zixem

Zixem 6단계-blind sql

ys.k 2022. 3. 3. 21:23

포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.

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. 칼럼명, 테이블명을 찾을 때 수동으로 추측하는 방법에 대한 시도를 처음 접했다. 무언가 내가 생각해오던 해킹과 이질적인 느낌이 들었다.