* 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 를 입력
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의 정보를 모두 알아냈다.....
'about Security > 웹보안과 해킹' 카테고리의 다른 글
[웹해킹] # 커맨드 인젝션 (0) | 2020.10.08 |
---|---|
[웹해킹문제풀이] # webhacking.kr 워게임 18번 (0) | 2020.10.04 |
[웹해킹] # 블라인드 SQL 인젝션_level.low (0) | 2020.10.03 |
[웹해킹] # SQL 인젝션 (0) | 2020.10.03 |
[웹해킹문제풀이] # webhacking.kr 워게임 26번 (0) | 2020.10.02 |
댓글