Challenge 55 시작!
마우스 커서 방향으로 초록 친구가 움직이고 score 가 변한다. rank 버튼을 눌러보자.
다른 유저들의 rank, id, score 가 출력되어 있고 아래 insert 문이 하나 있다. 스코어가 모두 2147483647 인 것을 보니 이 점수가 되면 flag 값을 주는 것 같다. 점수를 클릭할 수 있어서 클릭한 결과
url 을 보면 score 인자에 점수가 들어갔고, id 와 score 를 출력해주는 것을 볼 수 있다. 이 쿼리 뒤에 and true 를 입력해보자.
별 다른 필터링이 되어 있지 않아 똑같이 id 와 score 를 출력해준다. 때문에 true 대신 원하는 조건을 만들어서 정보를 얻어낼 수 있다. 필요한 정보는 flag 값이고 이를 알아내기 위해서는 flag 값이 들어있는 필드명을 알아야 한다. 이 때 Challenge 53 에서 실습해봤던 procedure analyse() 함수를 사용할 수 있다. 입력할 쿼리는 다음과 같다.
?score=2147483647 limit 2,1 procedure analyse();
limit 와 procedure analyse() 를 같이 사용하면 원하는 순서의 필드를 조회할 수 있다. 그 결과
p4ssw0rd_1123581321 라는 필드명을 알아내었다. 이제 이를 이용해서 flag 값을 알아내는 python 코드를 작성해보자.
먼저 length() 함수를 통해 flag 길이를 알아낸다. 그리고 substr() 과 mid() 함수가 필터링 되어 있어 right(), left() 함수를 이용하여 flag 값을 구한다.
코드를 실행하여 flag 값을 얻어냈다.
성공!
'WarGame > webhacking.kr' 카테고리의 다른 글
Challenge 58 (0) | 2020.05.04 |
---|---|
Challenge 57 (0) | 2020.05.04 |
Challenge 54 (0) | 2020.04.29 |
challenge 53 (0) | 2020.04.29 |
Challenge 52 (0) | 2020.04.29 |