본문 바로가기
  • 이게 왜 되지...?
시큐리티아카데미 7기 - sk쉴더스트랙/프로젝트

[시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 9일차 - 2026.04.21

by smisooth 2026. 4. 21.

이렇게 쓰다가 새 양식 새로 줘서 그걸로 해야함

오늘 내가 한 일

- 공격 시나리오

- 1,2차 업무 간단하게 문서화

- n8n 환경구축 문서화

1.  Dvwa
    1) 실행 방법
        ① sudo systemctl restart apache2
        ② http://127.0.0.1/DVWA/

    2) 비밀번호 바꾸는 방법
        ① sudo mysql -u root -p
        ② USE dvwa;
        ③ UPDATE users SET password = MD5('dvwa123') WHERE user = 'dvwa';
        ④ EXIT;

    3) 서비스 확인
        ① sudo service apache2 start
        ② sudo service mysql start

    4) dvwa db에 중요한 플래그 넣어놓는 방법
        ① 주의사항
            i.  DVWA 설정 페이지(setup.php)에서 "Create / Reset Database" 버튼을 누르면 직접 추가한 모든 테이블과 데이터가 삭제됨
            ii.  해결방법 -> 1-5) 
        ② 기존 users 테이블에 플래그 추가
            i.  터미널에서 MySQL 접속
                -  sudo mysql -u root -p
            ii.  데이터베이스 선택 및 데이터 삽입
                -  USE dvwa;
                -  INSERT INTO users (user_id, first_name, last_name, user, password, avatar, last_login, failed_login) VALUES (1337, 'FLAG', 'CAPTURED', 'flag_user', 'FLAG{sql_injection_master_kali}', NULL, NULL, 0);
        ③ 새로운 비밀 테이블 생성
            i.  비밀 테이블 생성
                CREATE TABLE secret_flags (
                    id INT PRIMARY KEY,
                    flag_name VARCHAR(50),
                    flag_value VARCHAR(100)
                );
            ii.  데이터 삽입
                INSERT INTO secret_flags (id, flag_name, flag_value) 
                VALUES (1, 'database_admin_flag', 'FLAG{deep_db_exploration_success}');
        ④ 설정 파일(Config)에 숨기기
            i.  위치
                -  /var/www/html/DVWA/config/config.inc.php
            ii.  파일 맨 밑에 주석으로 플래그를 적어enrl
                -  // FLAG{config_file_read_success}

    5) 초기화 해결 방법
        ① sudo nano /var/www/html/DVWA/dvwa/includes/DBMS/MySQL.php
        ② 테이블 생성(CREATE) 코드 추가  

        ③ 플래그 데이터 삽입(INSERT) 코드 추가  



2.  MITRE ATT&CK 위치
    1) Tactic
        ① Initial Access / Collection
    2) Technique
        ① T1190 / T1567 (데이터 유출)
    3) 관련 흐름
        ① Recon → SQLi (Flag 탈취) → Execution → Collection → Impact


3.  기본 정보
    1) 공격 대상
        ① DVWA 서버
            i.  Medium Level
            ii.  Ip : 

    2) 공격 목표
        ① SQL Injection을 통해 DB 시스템 구조를 파악하고, 숨겨진 flags 테이블에서 중요 데이터(Flag)를 탈취한 후 흔적 제거 및 DoS 공격 수행

    3) 취약점 원인
        ① 숫자형 파라미터에 대한 검증 부재 (SQL Injection)
        ①  mysql_real_escape_string() 함수가 싱글 쿼터(')만 방어한다는 점을 악용


2.  공격 절차 (Flag 탈취 중심)



3.  해보기
    1) 들어가기
        ① http://220.88.200.203:8081/DVWA

    2) 환경 체크
        ① DVWA Security
            i.  Security 탭에서 Medium으로 설정  

        ② Burp Suite
            i.  Kali에서 Burp Suite를 실행하고, 브라우저 설정 완료하기 


    3) DB 이름 및 컬럼 개수 파악
        ① 먼저 현재 사용 중인 데이터베이스 이름을 알아내야 함
        ② DVWA의 SQL Injection 메뉴로 이동 
            i.  User ID 입력창에 1을 넣고 Submit 누르기  

        ③ Burp Suite의 Proxy > Intercept 탭에서 잡힌 패킷을 Repeater로 보내기
            i.  id=1&Submit=Submit 부분을 아래처럼 수정해서 전송하기
                -  id=1 union select 1,database()&Submit=Submit  

            ii.  결과  

                -  현재 데이터베이스 이름이 dvwa인 것을 알 수 있다~