cgy12306

SQL Injection(Blind) 본문

Wargame/DVWA

SQL Injection(Blind)

cgy12306 2019. 8. 8. 23:36


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