필터링이 계속 추가된다. 그러나 모든 것에는 방법이 있을 것이다. like 연산자를 사용할 수 없다는 점이 추가되었다. '=' 을 우회하는 것에는 like 연산자와 in 연산자가 있다. in 연산자는, A in ('B') 와 같은 방법으로 사용한다. 필터링하지는 않지만, 괄호도 필터링 해보자. '(' - 0x28 ')' - 0x29 또한 ord() 함수를 사용할 수 없다. or 문자열 필터링에 걸리기 때문에다. 그렇게 때문에 decimal 이 아닌 hexadecimal 로 비교하면 되겠다. 1 # For LOS exploitation 2 import requests 3 4 requests.packages.urllib3.disable_warnings() 5 org_url = "https://los.rubi..
대부분의 내용은 비슷하지만 필터링이 바뀌었다. 주요적으로 substr, ascii 함수를 사용하지 못하는 필터링이 생겼다. SQL Injection 을 진행할 때 가장 중요하게 생각해야할 부분은 필터링이 아니라 GET 방식으로 입력받는 데이터가 실제로 어떻게 parsing 되는지이다. pw의 경우 query 문으로 전달한 데이터는 문자열로 parsing 된다. 하지만 no의 경우 데이터가 정수형으로 parsing 되기 때문에 따옴표로 문자열이라는 것을 지정하지 않는 이상 다른 문자열 데이터는 무시되는 것 같다. 이러한 이유로 아래 exploit 코드의 28번째 줄에서 보통의 방식에서 사용하던 + str(i) + ... + chr(j) 과 같은 방식은 PW가 모두 '%'로 출력되는 오류가 발생하였다. qu..