http://127.0.0.1:8080/WebGoat/ 사이트 자체가 며칠동안 잘 들어가지지 않아 많이 헤멨습니다 😥
2장
1 - General
프록시: 클라이언트 PC와 통신하고자 하는 서버의 중간에서 서로 간의 요청과 응답을 중개해 주는것
프록시 서버: 프록시 기능을 수행하는 서버
HTTP 프록시 : HTTP프로토콜을 중개하는 프록시
Burp Suite : 대표적인 웹 애플리케이션 보안 테스트 도구. 스캐닝을 포함해 다양한 유형의 보안 테스트 수행이 가능.
[ HTTP Proxies 모의 해킹 실습 ]
- p.71-73 : x
[ Developer Tools ]
- p.75-77 : Network에서 파일을 찾고, response로 이동 후 발견.
- p. 77-78 : x (시도 사진)
CIA Triad : 정보보안의 기반이 되는 모델, 기밀성/무결성/가용성 맨 첫 글자 가져와 조합한 것.
- 기밀성 : 정보를 아무에게나 보여주지 않는 것
- 무결성 : 데이터를 함부로 수정할 수 없게 하는 것
- 가용성 : 서비스가 정상적으로 가동되게 하는 것
2 - Broken Access Control
Hijack a session : Hijack a session 에서는 개발자 본인이 직접 개발한 세션 또는 토큰을 웹 애플리케이션에 적용할 때 안전을 위한 세션 값의 복잡성과 무작위성을 무시해 진행하면 해커는 무차별 대입 공격으로 세션 값을 탈취할 수 있다는 내용을 학습할 수 있다.
[ Hijack a session 모의 해킹 실습 ]
- p.88-90 공격 시도 (hijack_cookie 생성 확인 가능)
Direct Object References(직접 객체 참조) : 클라이언트가 URI Path나 파라미터 등으로 값을 서버에 전달하면 서버의 애플리케이션에서 전달받은 값을 참고해 특정 데이터와 객체에 접근하는 것을 의미.
Insecure Direct Object References(IDOR, 취약한 직접 객체 참조) : 클라이언트가 특정 데이터나 객체에 접근할 때는 그 사용자가 해당 데이터나 객체에 접근 권한이 있는지 확인하는 검증 과정이 반드시 필요. 이를 접근 제어라 하는데, IDOR은 이 접근 제어를 미흡하게 구현하여 해커가 권한이 없는 특정 데이터나 객체에 접근하게 된 경우를 의미.
[ IDOR 모의 해킹 실습 ]
- p.98, 100
[ Missing Function Level Access Control 모의 해킹 실습 ]
- 기능에 대한 액세스 제어 누락. (사용 불가능한 기능을 사용 가능}
- x
3 - Cryptographic Failures
Base64 : 데이터를 특정 알고리즘에 따라 변형하는 단순 인코딩 방법
- Base64 디코딩으로 원본 문자열 획득
- URL 인코딩 : 서버에 데이터를 전달할 때 예약어로 사용 중인 특수 문자나 한글과 같은 멀티바이트 형태의 데이터처럼 전달이 불가능한 데이터들을 URL을 통해 전달할 수 있도록 만들어주는 인코딩 방식
- HTML 인코딩 : HTML의 예약어를 화면에 그대로 표현하고 싶을 때 사용
- UU 인코딩 : 누락되지 않는 데이터 형태로 변환하는 작업
- XOR 인코딩 : 변환을 원하는 데이터와 XOR 연산을 수행할 key값을 설정
[ XOR 인코딩/디코딩 실습 ]
- 인코딩 데이터를 디코딩 해주는 온라인 사이트 이용.
- 단방향 암호화 - 한 쪽 방향으로 암호화한다는 의미
- Hash - 단방향 암호화로 생성된 암호문
- Hashing - Hash를 만드는 단방향 암호화 과정
- 단방향 암호화 알고리즘 종류 - MD5, SHA1, SHA512 등 (앞쪽 두 개는 보안성이 확보x. SHA256, SHA516이 권장됨.)
- Rainbow table 공격 : 수많은 원문에 암호화 수행해 데이터베이스에 저장, 중요한 Hash 얻어냈을 때 데이터들과 비교해 확인하는 방법.
- Salt : 원문 뒤에 임의의 문자열을 추가해 원문을 더욱 길고 복잡하게 만드는 것 (위 공격으로부터 안정성을 확보하는 방법.)
[ 단방향 암호화 공격 실습 ]
4 - Injection
5 - Security Misconfiguration
x : 시스템 오류나, 따라해봐도 해결하지 못함.