본문 바로가기

Study records/Web hacking

[Beebox] 취약한 직접 객체 참조(Insecure DOR)

Insecure DOR(Change Secret)

비밀 정보를 변경할 수 있는 페이지에서 사용자가 자신의 ID를 포함한 요청을 전송할 때, 이를 조작하여 다른 사용자의 비밀 정보를 변경한다.

 

 

 

 

 

프록시를 잡고 Change

 

bee를 A.I.M.로 변경

 

변경 완료

 

 

 

Security Level : high

 

 

 

insecure_direct_object_ref_1.php

 

토큰 검증

  • !isset($_REQUEST["token"]): 요청에 "token" 파라미터가 포함되지 않은 경우.
  • !isset($_SESSION["token"]): 세션에 "token" 값이 설정되지 않은 경우.
  • $_REQUEST["token"] != $_SESSION["token"]: 요청에서 받은 토큰과 세션에 저장된 토큰이 일치하지 않는 경우.

이 세 가지 조건 중 하나라도 참이면, 토큰 검증에 실패한 것으로 간주된다.

 

 

 

 

Insecure DOR(Reset Secret)

이 공격은 사용자 권한을 적절히 검증하지 않을 때 발생하고, 다른 사용자의 비밀 정보를 리셋하거나 변경한다.

 

 

 

 

 

 

 

 

 

Insecure DOR(Order Tickets)

다른 사용자의 티켓 주문 정볼르 변경하거나 조작한다.

 

1 tickets = 15 EUR

 

 

ticket price =1 로 변경

 

티켓값이 변경된 모습

 

 

security level : medium으로 바꿨더니 ticket_price가 없다.

 

 

하지만 값을 넣었더니 티켓 가격이 바뀐걸 볼 수 있다.

 

 

 

종합적으로 권한 검증, 간접 참조, 최소 권한 원칙, 안전한 코드 작성, CSRF 토큰 사용 등을 적절히 결합하여 시스템 보안을 강화해야 한다.