반응형
SMALL

웹해킹/sql injection 5

SQL Injection - Blind SQL Injection 기법

Blind SQL Injection - SQL 쿼리의 결과가 보이지 않은 상황 - 참일 때와 거짓일 때 다른 결과를 나오게 유도해야한다. - 참이 나올때의 데이터 1개를 저장해서 데이터 전체를 찾을 때까지 브루트포싱한다. (브루트 포스란? 무차별 대입 공격으로 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호를 해독하는 방법.) - Error Based SQL과 Time Based SQL로 나뉨 Error Based SQL Injection - 에러가 나오는지 여부에 따라 참 거짓 구분 - SQL 구문에 sql 쿼리를 보낼 때 에러가 발생하면 에러 문구를 출력시킴 - 다른 컴퓨터 언어의 조건문과 같은 조건문 함수를 이용 - if(조건문 ,참일 때 반환값, 거짓일 때 반환값) - 참일 때 반환값..

SQL Injection 필터링 우회 방법 - 주석편

sql injection을 하다보면 query문을 참인 값으로 만들기 위해 뒤에 문장을 주석 처리하는 경우가 많다. 이럴 때 주석처리의 의미를 가지고 있는 다양한 방법 첫 번째 - # (%23) - 주소에서는 %23으로 사용한다. - 해당 문장에서 그 문장 한줄만 주석처리 한다. (# 뒷부분) 두 번째 - /**/ - 주소에서 그대로 사용된다. - /*부터 */까지 주석처리 한다. - /* /* */ */ 이런 상황이면 먼저 열리고 먼저 닫힌 것까지 주석처리 (/* /* */ */) 세 번째 - -- - 주소에서 그대로 사용된다. - 해당 문장에서 그 문장 한줄만 주석처리한다. (-- 뒷부분) - --바로 뒤에 공백이나 다른 문자가 있어야지 주석으로 성립된다. 네 번째 - ;%00 - %00은 NULL을..

SQL Injection 필터링 우회 방법 - 대표 함수편

위와 같이 특정 함수들을 필터링하거나 또는 어떤 함수를 통해 필터링되는 것을 우회하는 방법 첫 번째 - str_replace(string $search, string $replace, string $subject) (이 함수는 특정 문자열을 아예 다른 문자열로 바꿔버리는 함수로 필터링 함수와 같이 사용된다.) 1) 필터링 되는 문자열 사이에 문자열을 넣는다. - ex) str_replace("admin","",$_GET[id]) --> aadmindmin 으로 입력하면 가운데 admin이 사라지면서 다시 admin이 남는것을 확인할 수 있다. 이 원리를 이용한다. 두 번째 - substr(string $str, int $start, int $length) (substr 함수는 비밀번호를 찾을 때나 아이디..

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

반응형
LIST