LOS(Load of SQL Injection) 3번 문제 풀이
소스코드를 보면, 몇가지 특수문자들이 필터링 되어있다. 스을쩍 훑어보면 no 파라미터에 1을 주면 guest 가 출력된다. (즉, no=1 은 게스트이다) 그렇다면, no 에 다른 번호를 준 후 or 연산자를 이용해서 id='admin' 을 하고 싶지만 싱글쿼터( ' ) 가 필터링 되어있다. 이걸 우회하는 방법 중 하나가 chr() 함수를 이용하는 것이다. char() 함수는 인자로 어떤 문자의 아스키코드값을 주면 해당 문자를 반환한다. ex) char(97) == 'a' 따라서 char(97,100,109,105,110) = 'admin' 이므로 ?no=2 or id=char(97,100,109,105,110) 을 입력해준다. --> no가 2 거나 id가 admin 인경우 를 뜻한다. id 파라미터에..
2020. 4. 30.