WebGoat

    WebGoat :: 부팅 시 자동 실행(Linux 기준)

    Linux에 WebGoat를 설치한 후에 매번 부팅한 후 직접 실행시키는 게 귀찮아서 시도했습니다. 방법 한 줄 요약 : init.d 에 WebGoat 등록 작업 OS : CentOS 7 먼저 /etc/init.d에 아래와 같은 내용으로 webgoat 스크립트를 생성합니다. # cd /etc/init.d # vi webgoat #! /bin/sh # webgoat Happy Hacking!! # chkconfig: 2345 20 80 # description: WebGoat Auto Run export WEBGOAT=/root/WebGoat-Workspace case "$1" in start) echo -n "Starting WebGoat: " cd $WEBGOAT sh ./webgoat_develope..

    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 :: Insecure Login# Stage 1, 2

    이 Lesson을 위해 server client 설치(구성? 설정?)이 필요합니다. Introduction Section(WebGoat 문제 Section에서 Introduction) 안에 Tomcat 환경 설정을 참고해주세요. 제발. Stage 1: 이 Stage에서, 당신은 패스워드를 가로채야 합니다. 그리고 로그인 한 후에 질문에 답하세요. 풀이 다음에 나오는 질문은 password가 뭔지 물어보는 것입니다. 시킨 대로 프록시 툴로 잡아도 되는 데, 귀찮잖아요. 프록시 설정하고, 툴 실행하고, 로그인 누르고, 중간에서 가로채고, 다시 넘기고… 어차피 미리 입력되도록 설정된 거니 그 설정을 보면 됩니다. ㅎ Password Input form 우클릭 -> 검사 Value 에 정답이 딱 적혀있네요~. ..

    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 우클릭 -> 검사..

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

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