웹해킹 실습 - 2. 취약한 인증 공격

roon-replica·2022년 6월 13일
0

웹보안

목록 보기
3/8

생각들

  • 취약한 인증 공격이라는게 뭔지?
  • 인증이 어떻게 하면 취약해지는지?
  • 세션 ID가 알려지면 안되나??
    -> ㅇㅇ 인증 우회 가능함. 나도 테스트할 때 경험해 봄
  • 세션 ID를 쿠키나 html폼의 히든 필드에 담으면 공격자가 절대 못 보나??
    이렇게만 하면 100% 안전한건가? -> ㄴㄴㄴ https까지 설정해야 함
  • 웹 브라우저 종료하면 자동으로 로그아웃되게 어떻게 구현함?
  • 쿠키의 secure 옵션은 처음 보는데 뭔지?

취약한 인증 케이스들

  • 계정 ID/PW가 쉽게 추측 가능한 경우
  • 비밀번호 많이 틀려도 재시도에 제약이 없는 경우
  • 세션 ID 노출? 되어 세션 하이재킹? 공격이 가능한 경우
  • 세션 타임아웃이 없는 경우

brute force attack

  • 가능한 경우를 모두 시도하는 방법
  • 패스워드의 길이가 길어질수록 무용해지는 공격 방법
  • 딕셔너리 공격
  • 버프 수트의 intruder 이용하여 자동화 공격 가능
    • proxy/http history로 로그인 요청 url 확인
    • position, payload 설정하여 자동화 공격
  • 대응 방법
    • locking
      패스워드 여러 번 틀리게 입력하면 로그인 시도를 제한하기 (locking)
      locking도 악용 가능
    • 캡차
      자동화된 프로그램을 무용하게 만들 수 있어서 유용함

세션 ID 노출

  • 세션 id가 노출되면 공격자가 그 세션 id를 이용하여 인증 과정 우회 가능
  • 세션 id는 쿠키에 담아서 전달하지만, URL로 전달되는 경우도 있음. 이 과정에서 세션 ID 노출될 수 있음
    -> 세션 ID는 쿠키나 form의 히든 필드를 통해 전달되는 것이 좋다고 함
  • 대응 방안
    • 세션 ID가 URI에 노출되지 않도록 하기
    • HTTPS 암호화 통로를 통해 전달되도록 하기
    • 쿠키로 전달할 때는 secure?, httpOnly 속성 추가하기
    • 유효시간 설정하고, 시간 지나면 무조건 파기
    • 웹 브라우저 종료하면 자동으로 로그아웃 되도록 하기
    • 세션 ID는 랜덤으로 생성되고 추측할 수 없어야 함
profile
집중 ➝ 프로세서↑ 시간 투자 ➝ 디스크↑

0개의 댓글