1. 문제
2. 풀이
preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수
$pattern : 문자열로 검색할 패턴
$subject : 입력 문자열
[$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둔다.
따라서 얻을 수 있는 정보로는 pw의 입력 값 필터링 규칙으로 다음과 같은 정보를 필터링한다는 것이다.
1) prob
2) _
3) .
4) ( )
5) space (공백)
이전의 문제들과는 달리 space(공백)을 필터링하고 있다. 따라서 공백을 대체할 다음과 같은 문자들을 사용하면 문제를 해결할 수 있을 것이다.
문자 | 16진수(Hex) |
---|---|
tab | %09 |
line feed | %0a |
vertical tab | %0b |
form feed | %0c |
carriage return | %0d |
id를 admin으로 만들게 되면 문제를 해결할 수 있으므로 표의 공백 대체 문자들을 이용하여 쿼리문을 작성하게 되면 다음과 같다.
tab을 제외하고도 위에 적어놓은 표를 참고 해서 공백을 대체할 문자들을 사용하면 문제를 해결할 수 있다.