전체 글

전체 글

    WebGoat :: Blind String SQL Injection

    아래의 form 은 사용자가 계좌 번호를 입력하도록 하고, 그것이 유효한지 아닌지를 결정합니다. Database안의 다른 엔트리들을 점검하는 참/거짓 시험 개발을 위해 이 form을 사용하십시오. 목표는 cc_number가 4321432143214321인 행에 대한 pins 테이블 안의 name field 값을 찾아내는 것 입니다. field의 타입은 string인 varchar 입니다. 엔트리 Data entry: 저장할 데이터들에 대한 항목으로 보시면 됩니다. 회사 사원에 대한 데이터베이스라면 이름, 나이, 연봉 등이 될 것이고, 도서관 자료인 경우에는 책 이름, 연도, 자료 번호, 소장 위치 등이 될 것입니다. 아래 데이터베이스 구조에서 column 들을 정의한다고 보면 됩니다. 데이터베이스 구조 ..

    WebGoat :: Cross Site Tracing(XST) Attacks

    모든 입력을 취소(문질러? 청소??)하는 것은 항상 좋은 연습입니다. 특히 그것들이 나중에 OS 명령어, 스크립트, 그리고 Database 쿼리로 사용될 입력이라면 말이죠. 특히 어플리케이션 안 어딘가에 영구적으로 저장될 내용에(을 위해?) 중요합니다. 사용자들은 사용자의 메시지가 회수될 때 다른 사용자가 바람직하지 않은 페이지나 내용을 불러올 수 있는 메시지 내용을 생성할 수 없어야 합니다. General Goal(s): Tomcat은 HTTP TRACE command를 지원하도록 설정되어 있습니다. 당신의 목표는 Cross Site Tracing (XST) 공격을 수행하는 것 입니다. Cross Site Tracing(XST)?? XST 공격이란 HTTP method 중 하나인 TRACE를 이용한 X..

    WebGoat :: Silent Transactions Attacks

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

    WebGoat :: JSON Injection

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

    Kali Linux에 Chrome 설치

    WebGoat 문제 풀다가 크롬의 개발자 도구가 그리워서 설치합니다… 주의 사항 크롬의 리눅스 버전은 root 가 아닌 일반 계정에서 사용하도록 설정되어 있습니다. 그러니 sudo 등을 통해 사용하거나...설정을 바꾸시거나… 다른 OS를 설치하시는 것이... (점점 우분투를 깔고 싶어집니다…) 설치리눅스 업데이트 & 업그레이드부터!! # apt-get update; apt-get -y upgrade; apt-get -y dist-upgrade 크롬의 deb 파일을 OS에 맞게 다운 받습니다. https://www.google.co.kr/chrome/browser/desktop/ 다운 받은 곳에서 크롬 설치 시작 # cd ~/downloads # dpkg -i google-chrome-stable_curr..

    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 광고 수익으로 콘텐츠를 만들고 있습니다.