본문 바로가기
security/웹 해킹

Webhacking.kr 53번

by aristia 2020. 7. 25.

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

댓글