소스를 살펴보자

preg_match 함수는 (/대조할 문자/, 입력한 문자)에서 입력한 문자에 대조할 문자가 있으면 1을 반환한다.
만약에 특수문자를 필터링 하고 싶은 경우 앞에 \를 붙인다.
ex>(/\'/, 입력한 문자)
브라우저 폼에서 브라우저는 php로 url을 자동으로 인코딩한 값을 전달한다.
php는 서버에서 전달받은 인코딩 값을 자동으로 디코딩한다. 즉 서버에서 자동으로 디코딩하는데 한번더 디코딩을 수행하도록 코드를 넣어준 것이다.
따라서 admin을 2번인코딩하여 url로 전달 한다면
%2561%2564%256d%2569%256e
1. 2번인코딩 된 것이 php 서버로 전달
php서버에서 인코딩 된것을 디코딩한다(1번 인코딩된것으로 바뀜) preg_match함수를 돌리면 "admin"이 포함되어 있지 않아서 필터링이 우회됨
1번 인코딩된것이 urldecode함수에 들어가게 되어 "admin"으로 디코딩됨
