본문 바로가기
  • 이게 왜 되지...?
시큐리티아카데미 7기 - sk쉴더스트랙/4주차 (2026.03.16 ~ 2026.03.20)

[시큐리티 아카데미 7기 - sk쉴더스 트랙] 19일차 - 2026.03.20

by smisooth 2026. 3. 21.

맛도리 닭강정 먹으면서 이번 주 마무리~~


1.  복습
    1) 웹 취약점 점검도구 개발
        ① 스파이더 url 확인하고 공격하고 리포팅까지 해봤음

    2) 기본테스트
        ① 잽을 접속해서 되는지 안되는지 확인하고

    3) 잽.core.alert
        ① 취약점 끄집어내기 ㄱㄴ
        ② 화면 출력도 ㄱㄴ

    4) 유형
        ① 1~4까지
        ② 패턴매칭하다 보니까 로우랑 인포메이션은 거의 스킵!


2.  웹 취약점 점검도구 개발 – Scan 코드
    1) 해당 페이지의 response body를 AI 에 질문하여 웹 취약점을 확인헤보기
    2) 툴 구현입장에서 “어떤문자열을 조합하여 탐지”할지 결정해야함

    3) def check_dom_xss
        ① 탐지방법 정의
        ② 패턴 1: document.URL
        ③ 패턴 2: document.write
        ④ 둘다 있으면 취약!

    4) CUSTOM_ RULES.append
        ① 사용자정의 룰셋을 검사 리스트에 등록

    5) Zap.core.messages로 저장된 모든 메시지 가져옴
    6) HTTP 응답 정보 추출

    7) request_header = msg.get('requestHeader', '')
        ① 겟인지 포스트인지 받아오고 프로토콜이랑 파라미터도 들고 옴
        ② url = parts[1]을 쓰면 파라미터만 가져옴

    8) result = rule['check_function'](response_body, response_header, status_code)
        ① 리스펀스 바디 값을 일단 결과로 던짐
        ② 파운드인지 트루, 펄즈로 출력해줌

    9) if existing['url'] == alert['url'] and existing['alert'] == alert['alert’]: 
        ① 탐지한 입장에서 룰을 구현할 때 파라미터가 여러 개 있을 수 있는데 그러면 중복탐지가 될 수 있음
        ② 요 한줄로 중복확인함


3.  준비
    1) 사전준비
        ① 잽 열고 툴즈, 옵션, api 들어가서 api키 갔고 와서 코드에 넣기
        ② 개인적으로 나는 포트가 꼬여서 포트 다 바꿔줌

    2) 1. Passive Scan 방식
        ① 이미 수집된 HTTP 트래픽 분석
        ② 공격 없이 안전하게 탐지
        ③ Response Body, Header, Status Code 검사

    3) 정규표현식 (Regex)
        ① 패턴 매칭으로 민감 정보 탐지
        ② re.findall(), re.search() 활용

    4) 커스텀 룰 구조
        ① name: 취약점 이름
        ② risk: High/Medium/Low
        ③ check_function: 탐지 로직
        ④ solution: 해결 방법

    5) 탐지 가능한 것
        ① 민감 정보 노출 (주민번호, 카드번호)
        ② 오류 메시지 노출 (SQL, Stack Trace)
        ③ 보안 헤더 누락
        ④ 서버 정보 노출
        ⑤ 관리자 페이지 접근

    6) ZAP DB 연동
        ① 현재는 Python에서만 탐지
        ② ZAP Script 기능으로 GUI 연동 가능


4.  Scan(사용자 정의 룰 생성 및 탐지-1, 4-1.py)
    1) Dom xss 패턴 찾아낼거임
    2) 소스 보기
        ① view-source:http://aspnet.testsparker.com/pricings.aspx
        ② setTime이랑 location.herf 찾아내기 

        ③ 이걸 코드 패턴에 넣어줌 (4.1.1,py)

            i.  이게 찾아내는 코드임
            ii.  변수는 변할 수 있지만 저 함수는 dom xss에서 사용되는 거니까 무조건 있을걸 알고 패턴으로 넣어놓는 거임

    3) zap에서 확인하기
        ① 코드에서 잽이랑 연결해 놨으니까 확인만 해주면 됨  

            i.  Site 눌러서 pricing.aspx가면 됨
            ii.  우리는 여기에 있다고 알고 진행하는 거기 때문에 얘가 출력이 되는지만 확인하면 됨

    4) 그 후에 4.1.1 코드 실행하고 나면 결과 출력 됨

        ① 2개의 패턴이 감지됐다고 뜸


5.  웹 모의해킹 진행순서
    1) Dast 도구
        ① zap

    2) dast 도구 결과를 바탕으로 수동 점검

    3) 수동 점검
        ① 수집된 디렉토리 분석
        ② 메뉴별 공격 시나리오 진행

    4) 종류
        ① 로그인페이지
            i.  Sql injection
            ii.  csrf
        ② 회원가입
            i.  Sql injection
            ii.  가입할 때 중복 체크
            iii.  휴대폰 인증
        ③ 게시판
            i.  파일 업로드
            ii.  다운로드
            iii.  Xss
            iv.  Csrf
            v.  타인 비밀글 보기/수정/삭제
            vi.  공지사항 글 작성
 
    5) Ucgxwjon 데이터 


    6) 잽해서 requester가서 헤더랑 바디 넣고 send 해보기


    7) 결과

        ① 요 뱅크 밑에 ws_asmx가 생김

    8) Burp 실행  
        ① true

            i.  -1 OR 2+101-101-1=0+0+0+1 

        ② false
            i.  -1 OR 3+101-101-1=0+0+0+1

    9) 히스토리 남겨보기


    10) burp에서 확인


    11) 위에서 했던 트루펄즈 넣어보기
        ① login 공격 페이로드 
            i.  -1' OR 2+271-271-1=0+0+0+1—
                -  참
            ii.  -1' OR 3+271-271-1=0+0+0+1—
                -  거직
            iii.  맨 뒤의 – 두개는 커맨드 처리임


6.  Cross site scripting
    1) 데모 테스트파이어 들어가서 connact us 가서 알람 줘보기

        ① 확인은 안됨
        ② 관리자가 해당 글 확인 시 로그에 세션값 저장되는지 확인


7.  모의점검 - 분석기준 매핑해보기
    1) A01: Broken Access Control (접근 제어 실패)
        ① 불충분한 권한 검증, 관리자 페이지 노출, 디렉터리 인젝션, 파일 다운로드, 서버사이드 요청 위조(SSRF), 프로세스 검증 누락

    2) A02: Security Misconfiguration (보안 설정 오류)
        ① 불필요한 Method 악용, 코드인젝션(XXE)

    3) A04: Cryptographic Failures (암호화 실패)
        ① 데이터 평문 전송

    4) A05: Injection (인젝션)
        ① SQL 인젝션, 코드 인젝션(기타 항목), 크로스사이트 스크립트(XSS)

    5) A07: Authentication Failures (인증 실패)
        ① 약한 비밀번호 정책, 불충분한 인증 절차, 취약한 비밀번호 복구 절차, 불충분한 세션 관리, 쿠키 변조

    6) A08: Software & Data Integrity Failures (무결성 실패)
        ① 악성 파일 업로드

    7) A10: Mishandling of Exceptional Conditions (예외 처리 미흡)
        ① 에러 페이지 적용 미흡, 정보 누출

    8) 기타 (공격 유형/수단)
        ① 자동화 공격