728x90
728x90
728x90
 

itsecgames.com

 

www.itsecgames.com

[사진 1]

15 유로 당 티켓 1장을 주문할 수 있는 웹페이지이다.

 

[사진 2]

위와 같이 3장 구입 시 45 유로가 된다.

 

low

[사진 3]

burp로 프록시를 잡으면 위와 같이 ticket_price 파라미터의 값으로 15가 전달된다.

 

[사진 4]

ticket_price 파라미터의 값을 위와 같이 1로 수정한다.

 

[사진 5]

그리고 실행하면 위와 같이 티켓 1장 당 1유로로 주문하여 총 3유로가 지불된다.

 

medium

[사진 6]

medium 레벨이다. burp로 프록시를 잡으면 low 레벨과 다르게 ticket_price 파라미터가 보이지 않는다. 서버에서 디폴트로 설정되어 있는지 모르겠지만, 임의로 body에 ticket_price 파라미터 값을 추가해보자.

 

[사진 7]
[사진 8]

[사진 7]과 같이 ticket_price 파라미터를 추가하고 값을 2로 설정하고 실행한다. 그럼 위와 같이 티켓 1장 당 2유로로 계산되어 총 6유로가 지불된다. low 레벨에서 티켓 가격을 의미하는 ticket_price 파라미터 이름을 알았기에 가능한 공격이지만, 유추할 수 있는 파라미터를 서버에서 사용할 경우 추측을 통해 이번 문제의 medium 레벨처럼 공격이 가능할 수 있겠다.

 

high

[사진 9]

high 레벨이다. medium 레벨과 마찬가지로 body에 ticket_price 파라미터가 존재하지 않아 임의로 값을 설정하였지만 위와 같이 티켓 가격이 변조되지 않고 총 45 유로가 지불되었다.

 

[사진 10]

먼저 low 레벨 서버 코드를 보면 ticket_price 파라미터의 값이 그대로 웹페이지로 출력되는 것을 확인할 수 있다.

 

[사진 11]

medium 레벨의 서버 코드를 보면 ticket_price 파라미터가 설정되어 있으면 해당 값을 ticket_price 변수에 설정한다. 이렇기 때문에 medium 레벨에서 임의로 ticket_price 파라미터를 설정하면 티켓 가격을 변조할 수 있었다.

 

[사진 12]

high 레벨의 경우 [사진 10], [사진 11] 어디에도 해당되지 않고 디폴트 값인 15가 변경되지 않는다. 따라서 티켓 가격 변조는 불가능하다.

728x90
728x90

+ Recent posts