wild card 를 활용하는 문제다. mySQL 에는 '_' 과 '%' 가 있다. mySQL에서는 guest 가 admin 의 계정보다 table 상에서 상단에 위치하여 먼저 검색되는 특징을 가지고 있다. 이를 이용하여 코드를 짜면 다음과 같다. 원래는 where 뒤의 구문만을 참으로만 만들면 되지만, 어렵지 않게 전체 admin 계정의 비밀번호를 파악할 수 있다. 아스키코드 값들을 넣어주는 과정에서 underscore('_')가 비밀번호로 인식되는 현상이 있어 이를 삭제하는 코드도 추가하였다. 1 # For LOS exploitation 2 import requests 3 4 requests.packages.urllib3.disable_warnings() 5 org_url = "https://los...
필터링이 계속 추가된다. 그러나 모든 것에는 방법이 있을 것이다. 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..