본문 바로가기

Study records/Web hacking

[Beebox] SQL 인젝션 (SQLMAP & Metasploit)

SQLMAP

오픈 소스 도구로 SQL 인젝션 취약점을 자동으로 탐지하고 활용할 수 있는 기능을 제공한다. 웹 애플리케이션의 데이터베이스 보안을 테스트하고, SQL 인젝션을 통해 데이터베이스를 침투하거나 데이터를 추출하는 등의 작업을 자동화할 수 있다. 그리고 다양한 데이터베이스 관리 시스템을 지원하며, 여러 종류의 SQL 인젝션 기법을 사용할 수 있다.

 

 

<SQLMap 에서 자주 사용되는 주요 옵션>

  • -u, --url : 테스트할 URL을 지정
  • -r, --request-file : HTTP 요청을 파일에서 읽어온다
  • -p, --parameter : 테스트할 특정 매개변수를 지정
  • --level : 테스트할 인젝션의 공격 레벨을 설정 ( 1-5, 기본값은 1)
  • --risk : 테스트할 인젝션의 위험 수준을 설정 (1-3, 기본값은 1)
  • --dbs : 데이터베이스 목록을 나열
  • --tables : 특정 데이터베이스의 테이블 목록을 나열
  • --columns : 특정 데이터베이스의 테이블에서 열 목록을 나열
  • --dump : 특정 데이터베이스 테이블의 데이터를 덤프
  • --batch : 자동 모드로 실행하여 사용자 입력을 요구하지 않는다
  • --banner : 데이터베이스 서버의 배너 검색
  • --current-user : 데이터베이스 서버의 현재 사용자 정보 검색
  • --current-db : 데이터베이스 서버의 현재 데이터베이스 정보 검색
  • --hostname : 데이터베이스 서버의 호스트 이름 검색
  • --os-shell : 데이터베이스 서버에서 OS 쉘을 실행
  • --sql-shell : 데이터베이스 서버에서 SQL 쉘을 실행

 

 

지정된 URL에 대해 'title' 매개변수에 SQL 주입을 시도하고, 데이터베이스 배너 정보를 가져오며, 상세한 디버깅 출력을 포함하여 요청에 특정 쿠키를 사용한다.

  • -b:
    • 데이터베이스의 배너 정보를 가져온다.
  • -v 3:
    • -v는 출력의 상세 수준(verbosity level)을 설정한다. 3은 상세한 디버깅 출력을 의미한다.
  • -p title:
    • -p는 SQL 주입을 시도할 매개변수를 지정한다. 여기서는 title 매개변수다.

 

 

 

 

Metasploit

메타스플로잇은 보안 취약점을 탐색하고 익스플로잇을 테스트하기 위해 사용되는 강력한 오픈 소스 프레임워크다. 다양한 익스플로잇 모듈, 페이로드 및 도구를 포함하고 있어 광범위한 보안 테스트를 수행할 수 있다.

 

https://raw.githubusercontent.com/naiduv/codecrawl/master/code/bwapp-sqli.rb #소스 코드

 

 

초기화

 

  • initialize 메서드는 모듈의 기본 설정을 정의한다.
  • update_info 메서드는 모듈 정보, 설명, 참조 URL, 권한 여부, 플랫폼, 페이로드 특성 등을 설정한다.
  • register_options는 사용자에게 필요한 옵션을 정의한다. 여기에는 TARGETURI, USERNAME, PASSWORD가 포함된다.

 

취약점 확인

 

 

  • check 메서드는 bWAPP의 SQL 인젝션 취약점을 확인한다.
  • hive 메서드를 호출하여 로그인하고 쿠키를 획득한 후, /sqli_1.php 페이지에 접근하여 취약 여부를 확인한다.
  • 응답 코드가 200인 경우 취약함을 알린다.

 

익스플로잇 수행

 

 

 

  • exploit 메서드는 실제 익스플로잇을 수행한다.
  • hive 메서드를 통해 로그인하고 쿠키를 획득한다.
  • 랜덤 파일 이름을 생성하고, 페이로드를 인코딩하여 SQL 인젝션 페이로드를 작성한다.
  • SQL 인젝션 페이로드는 UNION SELECT를 사용하여 PHP 페이로드를 웹 서버의 파일로 저장한다.
  • send_request_cgi를 사용하여 요청을 보내고, 파일이 성공적으로 업로드되었는지 확인한다.
  • 업로드에 성공하면, 업로드된 파일을 실행하여 페이로드를 트리거하고 핸들러를 호출한다.

 

로그인 및 세션 획득

 

 

 

  • hive 메서드는 로그인 페이지에 접근하고 세션 쿠키를 획득한다.
  • 로그인 정보를 POST 요청으로 전송하여 인증된 세션을 반환한다.

 

 

 

'Study records > Web hacking' 카테고리의 다른 글

[Beebox] Blind SQL 인젝션  (0) 2024.06.23
[Beebox] SQL 인젝션 (AJAX, Login, Blog)  (0) 2024.06.23
[Beebox] SQL 인젝션 기초  (0) 2024.06.21
[Beebox] iframe, OS, PHP, SSI 인젝션  (0) 2024.06.21
[Beebox] HTML 인젝션  (0) 2024.06.20