Today I Learned …
[수업] 11주차 정리 본문
* 해당 주차의 수업 내용을 정리합니다.
* 입사
> 실전 경험
> 창의력/잔머리
* 일상 생활
> 식당에 갔다. 밥을 먹는다.
> 뷔페 : 인증
* 메가커피
1. 커피를 고른다.
2. 계산하기를 누른다.
3. 쿠폰 적립 유무 알림
4. 쿠폰 (핸드폰 번호 입력) → 쿠폰 적립
5. 카드를 꼽고 계산
6. 커피가 나온다.
* 방역패스
* 배달의 민족
> 배민 오더
* 인증/인가 취약점
> 인증과 인가가 불충분해서 발생하는 취약점
인증 : Authentication
- 그 사람이 맞는지 확인하는 작업
ex) 로그인 인증, 본인 인증, 휴대전화 인증, 카드 인증...
인가 : Authorization
- 권한을 부여하는 것
ex) 글의 수정을 허용하는 것, 삭제, 등등...
* 인증 취약점
> 다른 사람인 척 할 수 있다.
> 인증 우회
왜 마이페이지 띄울 때 비밀번호를 입력받을까?
- 세션 아이디를 탈취한 경우 마이페이지에 접속하는 것을 방지하기 위해서
: XSS
: MITM (중간자 공격)
→ 그러나 인증 프로세스가 연결되어 있지 않으면 비밀번호 확인을 거치지 않고 바로 마이페이지로 접속할 수 있다.
-- 인증 프로세스 무시 (직접 접근)
인증 토큰 (일회용)
1. mypage_before.php
인증 성공 : 토큰 발급(일회용)
2. mypage.php?token=sdjfiewjfi
-- 클라이언트 측 인증 Bypass
> Burp Suite(Proxy)를 이용해서 우회할 수 있다.
* 대응 방안
서버 측에서 검증한다.
* 인가 취약점
-- 일상생활 더 유익하게 만들어주는 지식
ex) 클래스 101 : ID 7자 이상으로 가입하기 ㅎ
권한 검증 (인가) 불충분하기 때문에 발생한다.
* 인가 취약점 대응방안
- 세션을 이용한 서버 측 검증
- 파일 다운로드 받았다!
로그인 하지 않고 파일을 다운로드 받을 수 있다면?
인강 결제 안하고도 전체 다 볼 수 있게 됨...
> 파일 다운로드 페이지
> 세션 검증
(1) SQL Injection
사용자의 입력값을 검증하지 않고 입력값을 SQL 구문의 일부로 사용해서 임의의 SQL 질의문을 삽입하는 공격
> 서버 측에 임의 SQL 질의문을 삽입하는 공격
* 뭘 할 수 있나요?
1. 데이터 추출
2. 인증 우회
3. 데이터 변조
* 유형
1. Union
2. Error
3. Blind
* 대응 방안!
- 사용자 입력 변수화 (Prepared Statement)
- 화이트 리스트 필터링
* Prepared Statement, 어디가 안먹힐까요?
- 정렬 (미리 컴파일 못해둠)
- Table 이름 위치
> 화이트 리스트 검증
(2) XSS
> 클라이언트 측에 임의 스크립트 코드를 삽입하는 공격
* 대응 방안
- HTML 특수문자들을 HTML Entity 방식으로 표현
(3) CSRF
> 피해자가 자신이 의도하지 않은 요청을 하게 만드는 공격
XSS와 연계
* 대응 방안
- 중요한 요청의 경우 추측할 수 없는 값을 삽입해서 처리한다.
(4) File Upload/Download
* 대응 방안
- File 관리 DB
- DB를 통해서 File 경로, 이름 관리
(5) 인증/인가
* 대응 방안
- 서버 측 검증
* E2E 암호화
End To End 암호화
** 프로젝트
- 취약점 없음
> E2E 껍질만 벗기면 노다지
[E2E 암호화 Bypass]
* False Positive
→ E2E는 무조건 우회할 수 있다.
* E2E 대응 방안
1. 암호화하는 로직을 내 컴퓨터에서 찾는다.
2. 찾았다면 다음의 방법을 선택한다.
(1) prompt를 이용한 데이터 확인 밎 변조
(2) False-Positive 이용, 평문으로 전송
(3) 함수 후킹
'Study > 수업' 카테고리의 다른 글
[수업] 13주차 정리 (0) | 2022.01.13 |
---|---|
[수업] 12주차 정리 (0) | 2021.12.30 |
[수업] 10주차 정리 (0) | 2021.12.16 |
[수업] 9주차 정리 (0) | 2021.12.09 |
[수업] 8주차 정리 (0) | 2021.12.02 |