일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 하체
- 소모임
- 러닝
- GitHub
- Podman
- docker
- 2021
- DSEC
- 한강
- Shell
- 대전
- 뚝섬유원지
- 성수대교
- Grafana
- 건대입구역
- 10km
- 유산소
- Kubernetes
- 오답노트
- Python
- Run The Bridge
- 맛집
- 자전거
- 달리기
- 정보처리기사
- 힐링
- 중식
- 대구
- Linux
- zabbix
- Today
- Total
Run The Bridge
2020. 07. 08어플리케이션(2) 본문
웹 어플리케이션 취약점
1. OWASP 10 취약점 중 1, 2, 3 숙지
2. 공격 로그보고 어떤 공격인지 파악
SQL Injection 취약점
Form, union, mass, Stored ...etc
대응방안
- SQL쿼리문에 이용되는 특수문자 및 select, update, insert, delete, union 등의 SQL관련 문자열을 필터링한다.
- 입력되는 문자열의 길이를 제한하고 숫자일 경우 숫자인지 체크하는 함수를 사용한다.
- 웹 어플리케이션이 사용하는 DB사용자 권한을 제한한다.
- 선처리 질의문(Prepared Statement)을 이용하면 SQL쿼리문을 선처리 하여 이후 입력되는 변수 값을 항상 문자열로 다룬다.
공격유형에 대한 분류
Error-Based SQL Injection: 에러값을 기반으로 한 단계식 DB정보를 획득
Blind SQL Injection: 참과 거짓을 통해 의도하지 않은 SQL문을 실행
크로스 사이트 스크립트(XSS)
Stored XSS와 Reflected XSS의 차이점
Stored XSS: 게시판, DB에 악성코드를 저장하고 후에 접속 시 악성 스크립트 실행
Reflected XSS: email, message에 올린 뒤, 희생자가 클릭 시 악성 스크립트 실행
취약점 판단기준
- 사용자 입력 폼: <script>alert()</script>
- URL 파라미터 :<script>alert()</script>
대응책
- 사용자 입력값에 대한 검증은 반드시 "서버"단에서 한다.
- 사용자 입력 문자열에서 HTML코드로 인식될 수 있는 특수문자를 일반자로 치환하여 처리한다.
크로스 사이트 요청 변조(CSRF)
공격자가 조작된 정보를 담고있는 게시글을 올린 뒤, 희생자가 웹 서버에 조작된 게시글을 요청하면 공격자의 의도된 행위를 실시한다.
대응책
HTTP요청 내에 예측할 수 없는 임의의 토큰을 추가하여 정상적인 요청과 비정상적인 요청을 판별한다.
파일 업로드 취약점
GET으로 보내는 URL에 *.php가 올라간다.
대응책
- 디렉토리의 실행권한을 없앤다.
- 업로드 파일에 대한 파일 타입 및 확장자 검증
- 업로드 파일을 저장하기 위한 전용 디렉터리를 별도 생성
- 업로드하는 파일의 개수나 크기에 적절한 제한
httpd.conf파일에 AllowOverride All은 취약하다.
.htaccess파일을 하나 생성한 뒤
--> Order allow,deny
Deny from all로 설정
파일 삽입 취약점
파일을 삽입하는 위치에 따라 LFI, RFI로 나뉜다.
대응책
- allow_url_fopen을 off로 설정한다.
- include, require등의 구문/함수가 존재하는지 검증
'정보보안산업기사 > 어플리케이션' 카테고리의 다른 글
2020. 07. 08어플리케이션(3) (0) | 2020.07.09 |
---|---|
2020. 07. 08어플리케이션 (0) | 2020.07.09 |