본문 바로가기

웹해킹/DVWA

DVWA Blind SQL Injection(medium)

Blind SQL Injection도 마찬가지로 low레벨에서랑 다르게 직접 입력하는게 아니라 선택하는 걸로 바뀌어있다.

 

과정 자체는 low 레벨에서 했던 것과 동일하다.

직접 입력할 수 없으니 burp suite로 요청을 변조해서 같은 명령어를 보내기만 하면 된다.

오히려 low레벨에서는 '로 정확한 구문을 예상해서 공격문을 만들어야 했는데

이건 그냥 burp suite에서 바꿔주면 되서 더 쉬운거 같기도 하다.

 

아무튼 먼저 column 개수부터 알아보겠다.

id=1 union select 1,2#

이렇게 요청을 변조해서 보내면 참이 반환되고 column 개수가 2개인 것을 알아낼 수 있다.

 

이제 데이터베이스 이름을 알아낼 것이다. 

id=1 and length(database())=4#

먼저 이름의 길이를 알기 위해서 length함수를 사용하였다.

length=4일때 참이 반환되기 때문에 데이터베이스 이름이 4글자라는 것을 알아냈다.

id=1 and substr(database(),1,1)='d'#

이제 데이터베이스 이름을 한글자씩 substr 함수로 가져와서 비교하면서 참이 반환될 때를 찾았다.

데이터베이스 이름이 dvwa인 것을 알아냈다.

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

그 다음은 테이블의 이름을 알아내기 위해 먼저 테이블의 길이를 조사하였다.

길이가 5일 때 참이 반환되었다.

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

마지막으로 테이블의 이름을 한글자씩 비교하면서 알아보았다.

5글자짜리 테이블 이름은 users인 것을 알아내었다.

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

DVWA XSS(DOM)(medium) 롸업  (0) 2023.11.16
DVWA Weak Session IDs(medium)롸업  (0) 2023.11.16
DVWA SQL Injection(medium) 롸업  (0) 2023.11.15
DVWA Insecure CAPTCHA(medium) 롸업  (0) 2023.11.14
DVWA File Upload(medium)  (0) 2023.11.14