Challenge 45
2020.04.24
Challenge 45 시작! SQL Injection 문제이다. 먼저 소스코드를 보자. addslashes() 함수로 id 와 pw 를 필터링하고 있다. 때문에 ', ", \, 널 문자는 사용하지 못한다. 그리고 if 문으로 추가적인 문자들을 필터링하고 있다. 주목할 점은 mb_convert_encoding() 함수를 이용하여 id 값을 처리한다는 것이다. 멀티 바이트를 사용하는 언어셋에서는 \(백슬래시) 앞에 %a1 ~ %fe 의 값이 들어가면 하나의 문자로 취급하게 된다. 예를 들어 guest%aa' 를 입력하게 되면 addslashes() 함수를 통해 guest%aa\' 가 되고 이 때 %aa\ 가 하나의 문자로 처리되면서 '(따옴표) 가 제 기능을 할 수 있게 된다. 때문에 이를 이용하여 add..