작성
·
253
답변 1
0
안녕하세요.
예를들어,
boardView.do?idx=100
이런 요청에서 아래의 요청을 전송합니다.
boardView.do?idx=101-1
만약 100 게시글이 출력된다면, 101-1 에 대한 연산 처리가 이뤄졌다고 볼 수 있습니다.
그러면 이에 대한 연산 처리가 어디에서 될까요?
어플리케이션에서는 연산 처리가 되지 않습니다. 사용자 입력 값에 대해선 기본적으로 문자형으로 전달 받기 때문입니다. 입력 값은 그대로 DBMS로 전달되어 DBMS에서 입력 값에 대한 연산처리가 이뤄집니다.
때문에 연산처리가 이뤄졌을 경우 취약하다고 판단할 수 있습니다.
>> 이에 대한 부분은 [모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1] >> 취약점 분석 방법론(3)에서 자세히 다룹니다.
case when 또한 같은 이유입니다.
case when은 조건문인데, 참일 경우 100, 거짓일 경우 102 인데, 조건문 참 거짓에 따라 100 혹은 102 게시글이 보일 경우 case when에 대한 것은 dbms에서 해석이 되기 때문에 취약하다고 판단할 수 있습니다.