하.. 많네요 ㅋㅋㅋ
먼저 go 라는 변수에 파라미터 값이 들어가네요 ~
파라미터가 없을 경우 메인페이지로 이동하고 파라미터에 정규식에 해당하는 값이 있으면 "Access Denied!" 페이지를 보여줍니다.
정규식 의미? 단서?
1. '2'
2. '_'
3. '\'
4. 'from'
5. '_'
6. '='
7. '공백'
8. '단순문자'
9. '대소문자 구분없음'
위와 같은 상황을 우회하여 파라미터를 대입하여 결과를 뽑아내야합니다.
위의 두가지 if에 걸리지 않았다면 !
DB를 연결하고 rand() 함수를 통해 1~5까지의 번호를 무작위로 뽑아서 번호에 해당하는 if문으로 이동하여 쿼리가 실행됩니다.
rand==1 일때의 쿼리가 가장 쉬워 보이네요 ~
25%의 확률이니까 새로고침 여러번 하면 걸릴 것 입니다.
우리가 입력한 파라미터를 토대로 DB에 위와 같이 질의를 하고 그 결과를 mysql_fetch_array()함수를 통해 배열로 저장합니다.
그리고 그 배열의 첫번째 요소가 2일 경때 auth버튼을 클릭하면 "Hello admin"가 뜨도록 설계되어 있습니다.
먼저 파라미터에 2라는 값이 들어가면 정말 차단되는지 확인해보았습니다.