webhacking.kr 35

Sirius·2023년 4월 3일


phone 을 입력하는 화면이 보인다.

admin데이터에 내 ip주소를 삽입하면 문제가 풀릴것으로 보인다.

mysql의 특징중에 하나는 insert로 여러개의 값을 줄 수 있다는 것이다.

1. 로직

현재 phone을 입력받고 있다.
phone은 쿼리문의 마지막 부분에 해당한다.

aaa를 시험삼아 입력해보자.

값이 이런식으로 전달되는 것을 볼 수 있다.
즉 aaa를 입력하면
('guest', '알아서 ip삽입', aaa)
이렇게 들어간다.

2. 공격

뒷부분에 들어가고 phone에 대한 제약만 우회하면 되는데 phone에 대한 제약은 이렇다.
1. *
2. /
3. =
4. select
5. -
6. #
7. ;

Value를 2개 삽입할것이므로 앞의 쿼리문을 끝내주어야한다.
1),

1),('admin' '내 ip 주소', 2
맨 마지막에 괄호를 삽입하지 않는 이유는 쿼리문에 마지막 ) 가 남아 있기 때문이다.

이렇게 입력하면 쿼리문으로
('guest', '내ip주소', 1), ('admin', '내ip주소', 2)
이 2개가 삽입된다.

0개의 댓글