Skip to content

Commit a2ba1ae

Browse files
committed
docs: SC(6-3)
1 parent 98486c7 commit a2ba1ae

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

_posts/2025-10-08-SC(6-1).md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,37 +95,37 @@ last_modified_at: 2025-10-08
9595
* XML, 어노테이션 등 다양한 방식으로 매핑 설정 가능
9696

9797
### MyBatis 주요 기능
98-
1. **<span style="color: #008000">SQL 매핑 및 실행</span>**
98+
1. **<span style="color: #008000">SQL 매핑 및 실행</span>**
9999
* Mapper 파일(`XML`) 또는 어노테이션 기반으로 SQL 문을 정의
100100
* SQL 문과 자바 객체 간의 **자동 매핑 제공**
101101

102-
2. **<span style="color: #008000">동적 SQL 지원</span>**
102+
2. **<span style="color: #008000">동적 SQL 지원</span>**
103103
* **조건문(`<if>`, `<choose>`) 및 반복문(`<foreach>`)**을 사용하여 유연한 쿼리 작성 가능
104104

105-
![alt text](../assets/img/CyberSecurity/Mybatisactive.png)
105+
![alt text](../assets/img/CyberSecurity/Mybatisactive.png)
106106

107-
3. **<span style="color: #008000">타입 핸들러(Type Handler)</span>**
107+
3. **<span style="color: #008000">타입 핸들러(Type Handler)</span>**
108108
* **자바 객체와 DB 데이터 간 변환**을 위한 사용자 정의 타입 핸들러 지원
109109

110-
4. **<span style="color: #008000">플러그인 기능</span>**
110+
4. **<span style="color: #008000">플러그인 기능</span>**
111111
* 인터셉터를 통해 쿼리 실행 전/후 로직을 확장하거나 커스터마이징 가능
112112

113113
---
114114

115115
### Mybatis 설정 및 구성
116116

117-
1. **<span style="color: #008000">설정 파일(mybatis-config.xml)</span>**
117+
1. **<span style="color: #008000">설정 파일(mybatis-config.xml)</span>**
118118
* 환경(데이터소스, 트랜잭션 매니저 등) 설정 및 전역 옵션 구성
119119

120-
![alt text](../assets/img/CyberSecurity/Mybatissetting.png)
120+
![alt text](../assets/img/CyberSecurity/Mybatissetting.png)
121121

122-
2. **<span style="color: #008000">Mapper 파일 구성</span>**
122+
2. **<span style="color: #008000">Mapper 파일 구성</span>**
123123
* SQL 문과 매핑 정보를 담은 XML 파일 또는 어노테이션 사용
124124
* 네임스페이스를 통해 Mapper를 구분하고 재사용성 향상
125125

126-
![alt text](../assets/img/CyberSecurity/Mybatismapping.png)
126+
![alt text](../assets/img/CyberSecurity/Mybatismapping.png)
127127

128-
3. **<span style="color: #008000">데이터 소스 및 세션 관리</span>**
128+
3. **<span style="color: #008000">데이터 소스 및 세션 관리</span>**
129129
* **DB 커넥션 풀**`SqlSessionFactory`를 이용해 세션 생성 및 관리
130130
* 스프링과 연동 시, **스프링 부트 자동 설정 및 통합 활용**
131131

_posts/2025-10-08-SC(6-2).md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ last_modified_at: 2025-10-08
2424

2525
### SQL Injection 발생 원인
2626

27-
1. **동적 쿼리에서 사용자 입력 검증 부족**
27+
1. **동적 쿼리에서 사용자 입력 검증 부족**
2828
* 폼, URL 파라미터, API 요청 등 **모든 외부 입력에 대해 검증 로직이 없는 경우** 발생
2929
* 입력 값 내 특수문자(`'` , `"`, `;` 등)를 처리하지 않아 SQL 구문이 의도치 않게 변경됨
3030

@@ -33,7 +33,7 @@ last_modified_at: 2025-10-08
3333
SELECT * FROM users WHERE username = '" + userInput + "';
3434
```
3535

36-
2. **에러 메세지 및 정보 노출**
36+
2. **에러 메세지 및 정보 노출**
3737
* 애플리케이션에서 내부 에러 메시지 및 데이터베이스 정보를 노출할 경우, 공격자가 이를 분석하여 추가 공격을 설계할 수 있음.
3838
* **에러 메시지에 포함된 내용으로 다양한 정보 획득 가능**
3939
* → SQL 구문 오류, 테이블명, 컬럼 명, DB 버전 등
@@ -43,7 +43,7 @@ SELECT * FROM users WHERE username = '" + userInput + "';
4343
SELECT * FROM users WHERE usernamne = '" + userInput + "';
4444
```
4545

46-
3. **권한 및 보안 설정 미흡**
46+
3. **권한 및 보안 설정 미흡**
4747
* 애플리케이션에서 사용하는 DB 계정이 불필요한 권한(예: `DROP`, `ALTER`, `EXECUTE` 등)을 가지고 있을 경우, 공격자가 이를 악용 가능
4848
* 취약한 저장 프로시저를 통해 시스템 명령어 실행이나 추가 권한 상승 공격 가능
4949

@@ -158,7 +158,7 @@ statement.executeQuery(sql);
158158

159159
#### 코드 리뷰 방법
160160
1. **<span style="color: #008000">동적 SQL 구문 사용 여부 점검</span>**
161-
* **사용자 입력 값을 직접 쿼리 문자열에 결합**하는 경우
161+
* **사용자 입력 값을 직접 쿼리 문자열에 결합**하는 경우
162162

163163
```java
164164
public User findUserByUsername(String username) {
@@ -170,9 +170,9 @@ public User findUserByUsername(String username) {
170170
return null;
171171
}
172172
}
173-
```
173+
```
174174

175-
2. **<span style="color: #008000">입력 값 검증 및 이스케이핑 점검</span>**
175+
2. **<span style="color: #008000">입력 값 검증 및 이스케이핑 점검</span>**
176176
* 사용자 입력 값에 대해 **화이트리스트 기반의 유효성 검증** 수행
177177
* 특수문자나 위험 문자에 대한 이스케이핑 적용 여부 확인
178178

_posts/2025-10-08-SC(6-3).md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ last_modified_at: 2025-10-08
2323

2424
### 운영체제별 명령어 실행 방식 이해
2525

26-
#### Windows
26+
#### <span style="color: #008000">Windows</span>
2727
* **기본 명령어 인터프리터**
2828
* 주로 `cmd.exe`와 최근에는 `PowerShell` 사용
2929
* 내부 명령어와 외부 프로그램 호출 방식 구분
@@ -35,7 +35,7 @@ last_modified_at: 2025-10-08
3535
* Command Injection 시, **cmd.exe의 특수문자 해석을 악용 가능**
3636
* PowerShell의 스크립트 실행 정책 및 명령어 확장 취약점 존재
3737

38-
#### Linux
38+
#### <span style="color: #008000">Linux</span>
3939
* **기본 명령어 인터프리터**
4040
* 기본적으로 `/bin/sh`(대부분 Bash 기반) 사용
4141
* 쉘의 확장 기능(파이프, 리다이렉션, 와일드카드 등) 활용
@@ -61,19 +61,19 @@ last_modified_at: 2025-10-08
6161
* 테스트 입력 값에 특**수문자 및 제어 문자를 삽입**하여 명령어의 실행 흐름 변화를 관찰
6262
* 다양한 OS(Windows, Linux)와 쉘의 파싱 규칙을 고려하여 테스트 케이스 설계
6363

64-
#### 명령어 연결자 테스트
64+
#### <span style="color: #008000">명령어 연결자 테스트</span>
6565
* `&`, `&&`, `||`, `;` 등으로 추가 명령어 실행 테스트
6666
* 예) `"test && cat /etc/passwd"` 또는 `"test; ls"`
6767

68-
#### 파이프 및 리다이렉션 테스트
68+
#### <span style="color: #008000">파이프 및 리다이렉션 테스트</span>
6969
* `|`, `>`, `<` 등을 활용해 명령어 조작 테스트
7070
* 예) `"test | ls"`, `"test > output.txt"`
7171

72-
#### 환경 변수 활용 테스트
72+
#### <span style="color: #008000">환경 변수 활용 테스트</span>
7373
* `$PATH`, `$IFS` 등을 이용하여 **명령어 실행 환경 변경하거나, 검증 우회 시도**
7474
* 예) `"test $PATH"` 또는 `"test$IFSls"` 처럼 환경변수 활용 가능한지 테스트
7575

76-
#### 서브 명령 실행 테스트
76+
#### <span style="color: #008000">서브 명령 실행 테스트</span>
7777
* **백틱 (\`) 또는 $()\`**를 사용해 서브 명령어 실행되는지 테스트
7878
* 예) "test \`ls\`" 또는 "test $(ls)"
7979

@@ -96,6 +96,8 @@ last_modified_at: 2025-10-08
9696

9797
![alt text](../assets/img/SC/ZAP.png)
9898

99+
---
100+
99101
## Command Injection 대응
100102

101103
### 시큐어 코딩 적용
@@ -140,6 +142,8 @@ if(version.matches("[0-9.]+")) { // 정규식 [0-9.]+로 숫자와 점만 허용
140142
6. **<span style="color: #008000">테스트 케이스 마련</span>**
141143
* 다양한 악의적 입력(우회 페이로드, 인코딩 변형 등)을 포함한 단위 테스트, 통합 테스트를 수행
142144

145+
---
146+
143147
### 시스템 보호 전략
144148

145149
1. **<span style="color: #008000">최소 권한 원칙 적용</span>**

0 commit comments

Comments
 (0)