cgy12306
SQL Injection(Blind) 본문
View Source를 눌러서 코드를 보자.
Objective를 보면 SQL database의 버전을 찾아내라이다.
1~5까지는 exists라 뜨고 그 이후 부터는 아래와 같이 뜬다.
이 점을 이용해서 and 연산자를 사용해서 version을 알아내면 될 듯 하다.
select version(); 를 mysql에서 쳐보면 버젼이 나온다.
version()은 최소 1글자 이상이기 때문에 무조건 참이 들 것이다.
1' and length(version()) >=1# 를 입력해보자.
참 and 참이니 exists가 뜬다.
1부터 계속 숫자를 늘려가며 입력해보자.
1' and length(version()) >=24#를 입력했더니 MISSING이 떴다.
24글자 이상이란 말은 거짓이니 23글자라는걸 알아냈다.
이제 한글자씩 잘라서 아스키코드를 비교해서 참이 나오면 해당 값은 비밀번호 중 한 자리라는 것을 알 수 있을 것이다.
파이썬으로 코딩을 했다.
Mysql version은 5.7.27-0ubuntu0.18.04.1이다.
'Wargame > DVWA' 카테고리의 다른 글
XSS(Reflected) (0) | 2019.08.08 |
---|---|
XSS(Stored) (0) | 2019.08.08 |
SQL Injection (0) | 2019.08.08 |
Command Injection (0) | 2019.08.08 |
Brute Force (0) | 2019.08.08 |
Comments