WebGoat 7.0/AJAX Security

    WebGoat :: Dangerous Use of Eval

    연습으로, 당신의 임무는 스크립트가 포함된 입력을 찾아내는 것 입니다. 당신은 이 페이지가 입력을 당신의 브라우저로 되돌려주도록 시도해야 하며, 이는 스크립트를 실행할 것 입니다. 이 Lesson을 통과하기 위해, 당신은 반드시 alert()와 document.cookie 를 사용해야 합니다. 풀이 환경 대상 : WebGoat 7 브라우저: Chrome 분석 사용자의 입력을 그대로 반영하는 부분을 찾아 스크립트를 실행하는 Reflected XSS 공격 입니다. 따라서, 사용자의 입력이 그대로 표시되는 부분을 찾습니다. Enter your credit card number 또는 Enter your three digit access code 여기에 임의의 값을 입력한 뒤 Update Cart 또는 Purch..

    WebGoat :: Insecure Client Storage# Stage 2

    Stage 2: 이제, 당신의 모든 주문을 무료로 얻기 위한 시도를 하십시오. 풀이 프록시 툴을 이용한 방법과 개발자 도구를 이용한 방법, 두 가지가 있습니다. 방법을 소개하기 앞서, 알고리즘을 파악하도록 하겠습니다. Quantity 열에 값을 입력하면 각 금액들이 변하게 됩니다. 이를 개발자 도구로 확인하면, updateTotals 함수를 실행하는 것을 볼 수 있습니다. 이는 Stage 1과 같은 파일에 있습니다. http:// :8080/WebGoat /plugin_extracted/plugin/ClientSideValidation/js/clientSideValidation.js function updateTotals(){ f = document.form; f.TOT1.value = calcTot(f..

    WebGoat :: Insecure Client Storage# Stage 1

    Stage 1: 연습을 위해, 당신의 미션은 의도하지 않은 할인을 받는 쿠폰 코드를 찾아내는 것입니다. 풀이 할인 쿠폰을 찾아내는 문제입니다. 이것 저것 해봐서 추측해야 하지만, 이 글은 풀이니까… Enter your coupon code 옆의 Input form 에서 우 클릭 -> 검사 입력 값을 isValidCoupon 함수의 파라미터(field1.value)로 넘기는 모습입니다. 다른 문제와 마찬가지로 위로 가보면 해당 함수가 있는 Javascript 파일이 보입니다. http:// :8080/WebGoat /plugin_extracted/plugin/ClientSideValidation/js/clientSideValidation.js 이 파일을 보면 많은 함수들이 정의 되있지만, 필요한 몇 가지만..

    WebGoat :: Silent Transactions Attacks

    * 이 페이지는 계좌이체를 하는 간단한 인터넷 은행 프로그램 입니다. * 아래에 당신의 잔고, 이체할 계좌 그리고 이체할 양이 보여집니다 * 프로그램은 기본적인 사용자 측의 검증을 한 후에 거래를 제출하기 위해 AJAX를 사용합니다. * 당신의 목표는 사용자의 권한을 우회하고 조용하게 거래를 실행하는 것 입니다. 풀이 아…영어 실력이… 사용자의 권한이라 길래 사용자 권한 검사해서 우회하는 문제인가 했더니…사용자가 입력한 값을 검사하는 함수를 우회하는 문제였네요…;;; 사용자가 계좌랑 이체할 금액을 적으면 그 값이 제대로 된 값인지 검증하는 함수가 실행되고 이체를 진행하게 되는 데 검증하는 함수를 우회하는 문제입니다. 함수를 찾기 위해 Confirm에서 개발자 도구를 실행 (Confirm 우클릭 -> 검사..

    WebGoat :: JSON Injection

    * 당신은 보스턴의 코드 BOS인 MA 공항에서 시애틀의 코드 SEA인 WA 공항으로 여행 중 입니다. * 당신이 공항의 3개의 코드를 입력한 후에, 티켓 가격을 요청하는AJAX 요청이 실행될 것 입니다. * 당신은 환승이 없는 비싼 비행기와 두 번의 환승이 있는 더 싼 또 다른 비행기가 있다는 것을 알게 될 것입니다. * 당신의 목표는 더 싼 가격으로 환승이 없는 비행기를 얻는 것 입니다. 풀이 처음 접근 방식은 앞의 문제와 같습니다. 이 번에도 입력 폼에서 개발자도구를 실행시키면 호출하는 함수와 그 함수가 있는 자바스크립트 파일이 보입니다. (크롬으로 바꿨어요. 근데 저 js 파일 수정은 못 하네요…파이어폭스 때와 같은 이유로…왜지…) 마찬가지로 네트워크에서 확인해보면, function getFlig..

    WebGoat :: XML Injection

    WebGoat-Miles Reward Miles는 이용 가능한 모든 보상을 보여줍니다. 당신이 당신의 ID로 로그인할 때, 이 Lesson는 당신에게 당신의 잔액과 당신이 살 수 있는 상품을 보여 줄 것입니다. 당신의 목표는 당신에게 보상으로 허락된 구성 보다 더한 보상을 추가하도록 시도하는 것 입니다. 풀이 Please enter your account ID 옆의 Input box에 ID를 입력하면, 그 아래에 보상 목록이 나옵니다. 그리고 선택한 후 Submit을 누르면 배송될 거라고 메시지가 화면에 표시됩니다. 이 문제는 앞의 DOM injection 과 비슷하게 풀 수 있습니다. 페이지의 동작을 확인하기 위해 개발자 도구에서 네트워크 기능을 실행시켜주세요. F12 -> 네트워크 / 우클릭 -> 요..

    WebGoat :: DOM Injection

    * 당신의 피해자는 당신이 사용하기 위해 활성화 키를 받는 시스템입니다. * 당신은 활성화 단추를 사용할 수 있도록 시도 해야합니다. * 그 키 확인이 작동하는 지에 대한 과정을 이해하기 위해 HTML 소스를 보는데 시간을 할애하세요. 풀이 난이도가 올라가기 시작했어요…ㅠㅠ... Licene Key에 아무거나 입력하면 Wrong license key. 라고 뜨네요. 뭐…HTML 소스를 보라고 했으니…보죠 뭐 대신 Input box나 Activate 버튼에서 우클릭 -> 요소 검사로 좀 지능적으로 보겠습니다. ㅎㅎ HTML은 항상 태그들로 둘러쌓여진 형태(트리 구조)를 가지죠. 우리가 확인한 위치는 FORM 태그에 의해 둘러쌓여져 있습니다. 태그의 내용은 이렇구요. Welcome to WebGoat Reg..

    WebGoat :: LAB: DOM-Based cross-site scripting# Stage 5

    STAGE 5: DOM XSS 취약점을 완화시키는 client 쪽 HTML entity encoding을 수행하세요. 유용한 method는 당신의 escape.js 안에 제공됩니다. 풀이 다음은 Stage 5에 대한 WebGoat 소스 입니다. protected Element doStage5(WebSession s) throws Exception { ElementContainer ec = new ElementContainer(); ec.addElement(mainContent(s)); /** * They pass iff: * * 1. If the DOMXSS.js file contains the lines "escapeHTML(name)" */ String file = s.getWebResource(Le..

글을 읽어주셔서 감사합니다.

이 블로그는 Google 광고 수익으로 콘텐츠를 만들고 있습니다.