WebGoat
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..
WebGoat :: LAB: DOM-Based cross-site scripting# Stage 4
STAGE 4: 가짜 login form을 만들기 위해 다음을 사용하세요: Please enter your password: Submit 풀이 어떻게 하냐구요?? 걱정하지 마세요. 우리에겐 복붙이 있잖아요. 그냥 복붙하고 Submit Solution 클릭하면 풀리네요…;;;
WebGoat :: LAB: DOM-Based cross-site scripting# Stage 3
Stage 3: 다음으로, IFRAME tag를 이용해서 JavaScript alert를 만들어 보세요. Iframe이란 내부 프레임(Inline frame)이라는 의미로 하나의 HTML 문서 내에서 다른 HTML 문서를 보여주고자 할 때 사용합니다. ( 아이프레임(iframe) Inline Frames - HTML 고급 강좌 ) 풀이 다음과 같이 입력하면 됩니다. 단, 무한 alert는 선물…
WebGoat :: LAB: DOM-Based cross-site scripting# Stage 2
STAGE 2: 이제, image tag를 이용해서 JavaScript alert를 만들어 보세요. 풀이 이런 방법도 있구나…;;; 일단 아무거나 시도… 는 땡. 오로지
WebGoat :: LAB: DOM-Based cross-site scripting# Stage 1
Stage 1: 연습으로, 당신의 미션은 다음 위치에 있는 이미지를 사용하여 이 웹사이트의 외관을 훼손하는 것 입니다. OWASP IMAGE의 주소는 . /images/logos/owasp.jpg 이며, 그 이미지는 다음과 같습니다. 풀이 Enter your name 에 아무거나 입력해보면 화면이 바뀝니다. 해당 위치의 소스를 보면 글자 그대로 적혀있는 것이 보입니다. 여기에 자바스크립트를 넣어 테스트해보겠습니다. 테스트할 스크립트는 입니다. 간단한 메시지 창을 띄우는 스크립트 입니다. 스크립트가 그대로 적히지만 실행은 안되네요. 페이지가 로딩되면서 실행 되야 하는데, 로딩이 끝난 상태에서 페이지의 내용만 변경되었기 때문에 alert() 가 실행이 안된 듯 합니다. 이번에는 태그를 이용해보겠습니다. 다음..