반응형
SMALL

SQL INJECTION 36

SQL Injection 필터링 우회 방법 - 연산자편

위와 같이 연산자를 필터링하는 경우 우회 방법 첫 번째 - AND 1) && - url encoding: %26%26 두 번째 - OR 1) || 세 번째 - 등호(=) 1) like 연산자 - 등호랑 똑같이 사용 - 추가로 pw like "a%", "%a%" , "%a" 와 같이 쿼리문에서 응용가능하다. a가 해당 문자열 안에 있어도 참으로 반환 (순서대로 첫번째 문자가 a일 때, 문자열 안에 a가 들어있을 때, 마지막 문자가 a일 때) 2) in 연산자 - 등호 대신 in을 사용하고 ()를 사용하여 표현한다. - ex) pw in ("1234") 3) instr 함수 - ex) instr(id,"admin") 4) 부등호 () - 등호 대신 등식으로 표현 - ex) length(pw) = 8..

SQL Injection 필터링 우회 방법 - 공백편

위와 같이 공백을 필터링하는 경우 우회 방법 (즉 띄어쓰기를 대신해서 사용하는 방법) 1) 개행 문자 \n - 커서를 다음 줄로 이동시키는 개행문자 - url encoding: %0a 2) Tab \t - 커서를 탭 하나만큼 이동시크는 문자 - url encoding: %09 3) 캐럿 return \r - 커서를 줄의 맨 왼쪽으로 이동시키는 문자 - url encoding: %0d 4) 주석 /**/ 5) 괄호 () - 띄어쓰기 대신 띄어쓰고 싶은 문자 양옆에 괄호 넣기 6) 더하기 + 7) %0b, %0c, %a0 - 위에 방법이 모두 실패할 경우 사용 - %0b: vertical tab - %0c: form feed

LOS (Lord of SQL injection) 문제 14번 giant write-up

문제 14번 - giant query : select 1234 fromprob_giant where 1 일단 다른 문제들과 마찬가지로 php 코드가 주어져있다. 먼저 필터링 함수를 확인해보면 shit을 받는 변수에 1보다 큰 크기의 문자열이 들어가면 안되고 공백, 엔터, \r, 탭을 필터링한다는 것을 알 수 있다. 추가로 i를 통해 대소문자를 구별하지 않는다는 것을 확인 할 수 있다. 또 clear 조건을 확인하기 위해 조건문 코드를 확인해보니 query문을 참으로 만들어줄 문자열(?)이 1234에 들어가면 clear가 된다는 것을 알 수 있다. 위에 조건들을 확인해보니 query문에 from과 prob 사이에 공백이 필요하다는 것을 알 수 있는데 shit에 공백을 의미하는 문자를 넣어주면 된다는 것을 ..

반응형
LIST