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을 제외하고도 위에 적어놓은 표를 참고 해서 공백을 대체할 문자들을 사용하면 문제를 해결할 수 있다.