이번 내용은 나름 자신 있어서 가볍게 보고 있다

김씨의 오코노미야끼. 상당히 두꺼움

1. SQL injection
- 개요
- 무료 SQL Injection 취약점 스캐너
- Nikto — GNU 기반 오픈소스로 웹 서버 및 SQL Injection에 대한 취약점 점검. 리눅스 기반
- SQLMap — 블라인드 SQL Injection을 자동으로 수행하는 도구. 파이썬에서 개발
- Absinthe — GUI 기반 도구로 블라인드 SQL Injection 취약점에 이용. 데이터베이스의 스키마와 목록을 자동화 과정으로 다운로드
- 무료 SQL Injection 취약점 스캐너
- 공격 방식에 의한 분류
- Form SQL Injection
- 개요
- HTML Form 기반 인증을 담당하는 애플리케이션의 취약점이 있는 경우 사용자 인증을 위한 질의문의 조건을 조작하여 인증 우회
- 질의문의 조건절이 항상 참이 되도록 조작
- 성공 시 반환되는 레코드 셋의 첫 번째 레코드에 해당하는 사용자 권한 획득
- 취약점 사이트 실습(APM 환경)
- 안전한 사이트 실습(APM 환경)
- php.ini의 magic_quotes_gpc 설정
- Get, Post, Cookie로 전달되는 데이터에서 특수문자를 일반문자로 치환
- 5.4 버전 이상에서는 지원 안 함
- mysql_real_escape_string() 함수를 통해 특수문자 이스케이프 처리
- Prepared Statement
- 파라미터 필터링
- php.ini의 magic_quotes_gpc 설정
- 개요
- Union SQL Injection
- 개요
- union select 질의를 이용하여, 질의의 결과를 다른 질의 결과에 결합하여 공격
- 각각의 select문의 필드 개수가 같아야 하며 필드 타입이 호환할 수 있어야 함
- union all — 단순히 2개 이상의 select문 질의 결과를 합해서 보여줌
- 일반 union — 2개 이상의 select문 질의 결과에서 중복을 제거하고 보여줌
- 실습
- 컬럼 개수 파악 — order by 이용
- 취약한 사이트 실습(APM 환경)
- 개요
- Stored Procedure SQL Injection
- 개요
- Stored Procedure — 일련의 질의를 마치 하나의 함수처럼 실행하기 위한 질의의 집합
- 사례
- SQL Server(7.0 or 2000)의 xp_dirteree 확장 프로시저 실행 — 파일 목록 확인
- SQL Server(7.0 or 2000)의 xp_regwrite 확장 프로시저 실행 — 레지스트리 변경을 통해 윈도우 도움말 실행 시 공격자가 심어놓은 악성코드 실행
- 개요
- Mass SQL Injection
- 개요
- 한 번의 공격으로 대량의 DB값 변조
- DB값 변조 시 악성 스크립트를 삽입하여 사용자가 변조된 사이트 방문 시 감염되거나 악성 봇이 설치됨
- 사례 — 테이블의 문자형 컬럼 데이터 모두에 URL 삽입
- 개요
- SQL Injection 대응 방안
- SQL 관련 문자열 필터링
- 입력 문자열 길이를 제한하고 숫자일 경우 숫자인지 확인
- MS-SQL의 경우 master..xp_cmdshell, xp_startmail, xp_sendmail 등의 확장 프로시저 제거
- 웹 애플리케이션이 사용하는 DB 사용자 권한 제거
- Prepared Statement
- Form SQL Injection
- 공격 유형에 대한 분류
- Error-Based SQL Injection
- Blind SQL injection
2. XSS
- 개요
- Stored XSS
- 개요 — 공격자가 취약한 웹 서버에 스크립트를 저장하면 희생자가 해당 자료를 요청할 때 해당 악성 스크립트가 삽입된 응답 페이지가 전달되어 클라이언트 측에서 동작하는 방식
- 취약한 사이트 실습(APM 환경)
- 안전한 사이트 실습(APM 환경)
- 사용자 입력값 검증
- 게시물 열람 시 공격자의 악성 스크립트가 일반 문자로 처리
- Reflected XSS
- 개요
- 악성 스크립트가 희생자 액션에 의해 취약한 웹 서버로 전달되고, 웹 서버의 응답 페이지에 해당 악성 스크립트가 삽입되어 희생자 측에서 동작
- 취약한 웹 서버로 요청 정보 전송
- 악성 스크립트가 포함된 응답 페이지가 생성되어 희생자에게 전달
- 실습(APM 환경)
- 개요
- DOM based XSS
- 개요
- DOM — 웹 페이지 내에 있는 모든 객체를 조작, 관리할 수 있는 계층 구조 형태의 모델
- 희생자의 웹 브라우저에서 응답 페이지에 포함된 자바스크립트가 동작하면서 DOM 객체를 실행할 때 URL 등에 포함된 악성 스크립트가 동작하는 방식
- 응답 페이지와 관계없이 웹 브라우저에서 발생
- 실습(APM 환경)
- 개요
- 취약점 판단 기준 — XSS 취약점이 발생 가능한 입력 가능한 폼, URL 파라미터 등에 스크립트를 삽입하여 해당 스크립트가 동작하는 경우
- 대응책
- 서버 단에서 사용자 입력값 검증
- 사용자 입력 문자열에서 HTML 코드로 인식될 수 있는 특수문자를 일반문자로 치환
- HTML 태그 화이트리스트 선정 및 허용
3. CSRF
- 개요
- 정상적인 경로를 통한 요청과 비정상적인 경로를 통한 요청을 서버가 구분하지 못할 경우 공격자가 스크립트 구문을 이용하여 정상 이용자가 조작된 요청을 전송하도록 함
- 공격당한 사용자의 권한을 공격자가 사용
- 실습
- 취약점 판단 기준 — CSRF 취약점이 발생할 수 있는 입력 가능한 폼에 img 태그의 src 속성을 이용하여 요청을 입력, 요청이 실행되면 취약한 것으로 판단
- 대응책
- 모든 HTTP 요청에 예측 불가능한 임의의 토큰을 추가하여 정상 요청과 비정상 요청 판별
- XSS에 대한 취약점 제거
4. SSRF
- 개요
- 적절한 검증 절차를 거치지 않은 사용자 입력값을 서버 간의 요청에 사용하여 악의적인 행위가 발생하는 취약점
- 공격자가 조작된 요청을 웹 서버에 전송하여 웹 서버가 내부 네트워크에 있는 다른 서버에 악의적인 요청을 보내는 취약점
- 실습
- 대응책
- 사용자 입력값을 다른 시스템의 서비스 호출에 사용하는 경우 사용자의 입력값을 화이트리스트 방식으로 필터링
- 무작위 입력값을 사용해야 한다면 블랙리스트
- 동일한 내부 네트워크에 있는 서버 간이라도 기기 인증, 서비스 접근 권한 등을 확인하여 요청 처리
5. OS Command Execution
- 개요
- 사용자 입력값이 운영체제 명령어의 일부 또는 전부로 구성되어 실행
- 웹 애플리케이션에서 system(), exec()와 같은 시스템 명령어 실행
- 실습
- 취약한 사이트 실습(APM 환경)
- 안전한 사이트 실습(APM 환경)
- PHP 운영체제 명령어 실행 함수(APM 환경)
- shell_exec
- passthru
- exec
- system
- 취약점 판단 기준
- 대응책
- 사용자 입력값 필터링
- 웹 방화벽 등 필터링 가능한 보안 장비를 운영할 경우 룰셋 적용
- 필요하다면 화이트리스트
'정보보안기사' 카테고리의 다른 글
| [정보보안기사(실기)] SECTION 09 웹 서버 취약점 (0) | 2026.06.07 |
|---|---|
| [정보보안기사(실기)] SECTION 08 웹 애플리케이션 취약점 (2) (0) | 2026.06.06 |
| [정보보안기사(실기)] SECTION 07 애플리케이션 학습 (0) | 2026.06.03 |
| [정보보안기사(실기)] SECTION 06 라우터 보안 (0) | 2026.05.31 |
| [정보보안기사(실기)] SECTION 05 네트워크 보안 프로토콜 - SSL/TLS (0) | 2026.05.27 |