5 데이터 변조 – 히든 필드 변조
앞에서 우리는 데이터 변조 중 세션ID 변조를 통한 불법 로그인에 대해 알아 보았습니다.
이번에는 같은 개념의 변조 방법 중 히든 필드의 변조를 알아 봅니다.
히든 필드 역시 HTTP 의 무 상태 환경에서의 클라이언트 식별을 위해 자주 사용되는
방법 입니다.
Hidden 필드는 말 그대로 사용자에게는 보여 지지 않지만 서버와 클라이언트간에
데이터를 교환에 사용되는 일종의 이름/값 쌍을 가지는 데이터 필드 입니다
아래와 같은 형식으로 많이 사용하지요.
<input type=”hidden” name=”변수명” value=”데이터”>
이 히든 필드는 실제로 아직까지 유용한 정보 교환 방법으로 사용되어 지고 있습니다.
대체로 아래와 같은 방법으로 사용 됩니다.
1. 게시판 같은 곳에서 특정 글의 고유번호를 저장하여 수정 및 삭제 시 이용한다
2. 쇼핑몰 같은 곳에서 가격정보로 이용한다.
3. 게임사이트 같은 곳에서 포인트 정보로 이용한다.
이외에도 많은 부분 히든 필드를 사용 할 것으로 보여 집니다.
히든 필드 변조 시도 방법.
1. 쇼핑몰 사이트에서 특정 상품의 구매 과정에서 가격정보와 같은 것의 흐름을 파악한다.
2. 가격정보가 히든필드로 넘기는 것을 웹 프록시 툴로 확인한다.
3. 정상적인 가격을 아주 저가로 변조하여 구매를 완료 한다.
지금부터 간단한 데모 화면을 통해 위 과정을 살펴 봅니다.
데모를 위해 간단하게 쇼핑몰 구매 프로그램을 아래와 같이 작성 합니다.
1 Product.asp <form method="post" action="Order.asp"> <input type=hidden name="Price" value="500000"> <table border=1 width=300> <tr> <td>상품명 </td> <td><b>트럼 세탁기</b></td> </tr> <tr> <td>가 격</td> <td>500,000</td> </tt> <tr> <td>상품 설명</td> <td>아<br>주<br>좋<br>아<br>요</td> </tr> <tr align=center> <td colspan=2><input type=submit value="구매".</td> </tr> </table> </form> 2. Order.asp <% Price = Request("Price") response.write("구매가격은 <font color=red>" & Price & "</font> 원 입니다") %> |
정상적인 시나리오 라면 아래와 같은 시퀀스로 구매과정이 일어 날 것입니다.
1. 상품 상세 정보
2. 구매 과정 중 가격
그러나 위 1과 2의 과정에서 프록시 툴을 이용해 아래와 같이 가격을 변경합니다.
그러면 위 2의 과정은 아래와 같이 될 것입니다
결국 500000 원 짜리 세탁기가 1원에 판매 되는 결과를 초래 하게 되었군요..
물론 현재에는 이렇게 중요한 정보를 단순히 히든 필드로 값을 주고 받지는
않을 것이라 예상됩니다.
그러나 예전에는 아주 많은 부분의 값들이 이 히든 필드를 통해 전달 되었으며
실제로 아직까지도 그 쓰임새가 다양하고도 많이 있는 것으로 알고 있습니다.
히든 필드 변조는 아래와 같은 사항들을 점검 하세요..
1. 가격과 같이 중요한 정보는 히든 필드로 값을 판단해서는 안된다.
최종 구매가 일어나는 시점에 다시 서버에서 가격정보를 가져 오도록 프로그래밍 한다.
2. 히든필드의 내용을 암호화 하여 전달한다.
[출처] 5 데이터 변조 – 히든 필드 변조|작성자 캔시온