sql injection 취약점이 있는지 테스트 해보자


타겟은 Metasploitable2 의 web서버를 가지고 해보겠다


http://192.168.0.11/ (metasploitable2의 ip주소)


이중에서 DVWA (Damn Vulnerable Web Application)에 들어가자



Username 과 Password 넣는 곳이있다


admin / password 를 입력하자



DVWA 홈페이지 모습



DVWA Security라는 메뉴로 가서 


보안 레벨 high를 low로 바꾸고 Submit 누르자



그리고 메뉴에서 SQL Injection (Blind) 를 선택하자



웹 브라우저 주소 창을 보면 이런식으로 적혀 있을 거당


User ID: 입력하는 곳에 아무것도 입력하지 말고


Submit 를 눌러보자



이런식으로 안보이던 id= 값이 추가 된걸 볼 수 있다



User ID: 라는게 써있고 다음 입력하는 창이 있고


다음 Submit 버튼이 있는걸 볼수 있다



나는 chrome를 사용 중인데 다른 웹 브라우저도 페이지 소스 보는 기능은 있을거다


페이지 소스 보기를 누르고


Ctrl + F (찾기/검색) 버튼을 눌러서


user id: 를 입력하면 그 위치로 가게 된다


User ID:


다음 칸에 method GET 방식으로 name 이 id인 것을 submit 하게 되어있는 걸 볼 수 있다


이제 다시 아까 창으로 돌아와서 오른쪽 밑에 View Source와 View Help라는 버튼이 있다


그중 View Source 버튼을 눌러보자



Submit 누르면 어떤 식으로 작동 되는지 나와있다


다시 DVWA창으로 와서



1을 입력하고 Submit누르면 ID 1번에 해당하는 사용자의


First name 과 Surname이 출력된다



2도 입력해 본다


2에 해당하는 정보를 준다


데이타베이스는 id 값을 사용자에게 받아서


그에 맞는 정보가 있으면 그 값을 넘겨준다


데이타베이스에 없는값을 입력해보면


아무것도 출력되지 않는것을 볼 수 있다


아마도 웹서버에서 에러메세지를 보이지 않게되어있는 거같다


그렇다면 이런 식으로


'or'1=1-- 을 입력해보자



데이타베이스에 저장 되어있는 사용자 전부의 목록이 출력된 걸 볼수 있다

이제 Kali의 sqlmap을 이용해서 이 취약점을 이용하여 어떤 정보까지 얻을 수 있는지


테스트 해보자