본문 바로가기
about Security/웹보안과 해킹

[웹해킹] # sqlmap 자동화 공격

by saniii 2020. 10. 3.

* sqlmap 프로그램 : SQL인젝션 공격 프로그램 중 가장 대중적으로 사용되며, 오픈 소스 프로젝트이다.

 

이 프로그램을 이용하여 SQL 인젝션을 자동 공격하고

원하는 정보를 탈취한다.

 


 

< sqlmap을 실행하는 2가지 방법 >

1) 칼리 리눅스의 좌측 상단 아이콘을 누른 후 -> 3.Web Application Analysis를 선택 -> sqlmap 선택

 

OR

 

 

 2) 터미널에 명령어를 입력하여 실행 가능 (sqlmap -h를 입력하면 사용법과 옵션 확인 가능)

 

 


 

 

# sqlmap 프로그램 옵션 알아보기

 

< SQL 인젝션 취약 여부를 알아내고자 할 때 사용하고자 하는 옵션 >

-u : 필수 옵션으로 공격을 시도할 URL 을 지정

--cookie : 로그인이 필요한 경우, 로그인하고 난 다음 발급된 세션 쿠키값 지정

--data : POST 요청의 폼을 공격하고자 할 때 바디로 전달되는 데이터를 지정

-p : 테스트할 파라미터를 지정

--dbms : 데이터베이스의 종류를 알고 있는 경우 지정 (예: mysql)

 

< SQL 인젝션 공격이 가능한 경우 데이터를 입수할 때 사용하는 옵션 >

--current-db : 현재 데이터베이스의 이름을 알아냄

-D : 데이터를 입수할 데이터베이스를 지정

-T : 데이터를 입수할 테이블 이름을 지정

-C : 데이터를 입수할 칼럼을 지정

--tables : 데이터베이스의 테이블들을 알아냄. 주로 - D 옵션과 같이 사용

--columns : 데이터베이스의 칼럼들을 알아냄. 주로 - D, -T 옵션과 같이 사용

--dump : 데이터베이스의 정보들을 알아냄.

 

 


 

 

# -u와 --cookie 옵션을 이용하여 SQL인젝션 공격 가능 여부를 확인

이 옵션을 이용하기 위해서는 입력값을 Submit했을 때의 쿠키값과 URL이 필요

(참고로 이 페이지는 로그인이 필요한 페이지이기 때문에 쿠키값까지 필요한 것이다.)

 

 

1) 임의의 값 1을 id에 입력했을 때 요청을 전송한 URL과 이때의 쿠키 값을 확인

쿠키 확인

cookie값 확인 방법 : F12의 console창에 document.cookie 를 입력

 

URL 확인

 

 

 

 

2) 터미널 창에 sqlmap -u “URL” --cookie “쿠키 값” 을 입력

 

TIPTIP : Firefox창에서 ctrl c 터미널에서 ctrl shift v 하면 복붙가능!!

요렇게 입력해주쎼용

이렇게 입력하면 많은 출력과 질문들이 나오는데 하나씩 하나씩 해석해보자

뭐라고 답해야 하는지도 나와있으니 잘 읽어보자

 

 

 

2) 3) 6) 7)은 결국 마지막 최종 결과에 다 정리되어 나오긴 하지만

중간에 출력되는 내용이 이런 것들을 알려주는 것이라는 차원에서 소개해본다.

 

이런 결과를 통해 이 페이지(폼)가 SQL인젝션이 가능하다는 것을 알아냈으면

다른 옵션들을 활용하여 본격적으로 정보를 탈취한다. 

( 공부하는거야 공부 진짜 이런짓하면 안돼 )

 

 


 

 

옵션에 계속해서 쓰이는 URL과 쿠키값은 아까 그 쿠키값 그대로이다.

만약 인젝션을 실행하려는 페이지가 로그아웃되었거나 

재로그인했으면 URL과 쿠키값이 달라지기 때문에 다시 알아내어 입력해야 한다.

 

이 옵션을 통해 사용하는 데이터베이스의 이름이 'dvwa' 임을 알아냈다.!

 

 

 

이 옵션을 통해 dvwa에 존재하는 table이 users와 guestbook 두 개임을 알았다.!

 

 

 

 

알고 싶은 정보는 방문자가 아니고 사용자이므로 테이블 명 users를 이용하자.

 

결과를 통해 사용자가 5명 존재하며 각 id의 정보를 모두 알아냈다.....

 

 

 

 

 

 

댓글