Wargame | CTF/WebHacking

    Juice Shop - Redirects Tier 1(★) 풀이

    현재 웹페이지에서 서비스 하고있지 않은 도네이션 사이트로 리다이렉션을 시키라고 하는데요. 그냥 그 도네이션 웹 페이지 주소를 찾아서 페이지 요청을 하면 될것 같네요. 뭔가 사이트를 리다이렉션해주는 곳을 찾아보니 Payment 쪽에 있었습니다. 그냥 main.js 안에서 redirect?to 를 검색하여 리다이렉션해주는 URL을 찾아보았는데 현재 서비스 중이 아닌 URL을 찾았고, 해당 URL에 페이지를 요청하니 클리어가 됐습니다.

    Juice Shop - Error Handling(★) 풀이

    에러를 발생시키는 문제입니다. 에러를 통해서 취약점이 있는지 점검해볼 수 있습니다. 이메일 필드, 패스워드 필드에 각각 싱글쿼터를 넣어봅니다. 패스워드 부분에는 싱글쿼터에 대한 오류를 발생시키지 않았지만, 이메일 부분에는 싱클쿼터에 대한 오류 핸들링을 제대로 하지 못하는 모습이 보였습니다. 싱글 쿼터를 처리해주지 못하면 sql 인젝션이 가능해 집니다.

    Juice Shop - Confidential Document(★) 풀이

    기밀문서에 접근하라는 문제입니다. about us 라는 곳으로 가면 이 홈페이지의 정책을 바로 다운받게 하는 링크가 있는데요. 이 링크의 URL을 보면 ftp라는 경로에서 받는것으로 보입니다. 직접 URL을 쳤더니 접근이 가능합니다. 다른 문서들을 열람 가능합니다.

    Juice Shop - Score Board(★) 풀이

    스코어 보드를 찾는 문제입니다. 쥬스샵 설치 후 맨 먼저 풀어야 할 문제입니다. 브라우저의 F12 버튼을 눌러 개발자모드를 켜준 뒤, Debugging 탭에 main.js를 들어가 줍니다. main.js 안 하단에 접근이 가능한 path가 나와 있네요. url을 치고 들어가면 끝입니다.

    Juice Shop - Admin Section(★) 풀이

    관리자 페이지를 찾는 문제입니다. main.js 안에 페이지 목록들이 적혀 있네요. administration 이라는 경로가 관리자 페이지 임을 예측해 볼 수 있습니다.url 을 입력하여 접속하니 관리자 페이지에 정상적으로 접근이 가능합니다.

    웹고트 Cross-Site Scripting (XSS) - CSRF Token By-Pass

    CSRF 레슨과 마찬가지로, 자금을 이체하려는 악의적 인 요청을 포함하는 전자 메일을 뉴스 그룹에 보내는 것이 목표입니다. 성공적으로 완료하려면 유효한 요청 토큰을 얻어야합니다. 이전 자금 양식을 표시하는 페이지에는 유효한 요청 토큰이 들어 있습니다. 전송 자금 페이지의 URL은이 강의의 "Screen"및 "menu"쿼리 매개 변수와 추가 매개 변수 인 "transferFunds = main"이있는 "attack"서블릿입니다. 이 페이지를로드하고 토큰을 읽은 후 자금을 이전하기위한 위조 된 요청에 토큰을 추가하십시오. 공격이 성공했다고 생각하면 페이지를 새로 고침하고 왼쪽 메뉴에서 녹색 확인을 찾습니다. 앞전 문제와 달리 유효한 토큰을 얻어야합니다. 해당코드를 넣어줍니다.

    웹고트 Cross-Site Scripting (XSS) - Cross Site Request Forgery (CSRF)

    귀하의 목표는 뉴스 그룹에 이메일을 보내는 것입니다. 전자 메일에는 URL이 악의적 인 요청을 나타내는 이미지가 있습니다. 이 레슨에서 URL은 레슨의 "Screen"및 "menu"매개 변수가있는 "attack"서블릿과 5000과 같은 임의의 숫자 값을 갖는 추가 매개 변수 "transferFunds"를 가리켜 야합니다. 링크를 구성하려면 "Screen "및 "menu"값을 오른쪽에있는 매개 변수에 삽입합니다. 그 당시 인증 된 CSRF 이메일을받는 사람은 자금을 이전하게됩니다. 이 레슨의 공격이 성공하면 왼쪽 메뉴의 레슨 이름 옆에 초록색 체크 표시가 나타납니다. CSRF 는 사용자의 의지와는 상관없이 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격입니다. 현재는 매..

    웹고트 Concurrency - Shopping Cart Concurrency Flaw

    이 실습을 위해, 당신의 임무는 당신이 저렴한 가격에 상품을 구매할 수있게하는 동시성 문제를 이용하는 것입니다. 먼저 동시성을 이용하기위해 똑같은 웹페이지를 하나더 열어줍니다. 두개의 웹페이지는 세션도 동일합니다. 페이지1에서 1개만 구입을 한뒤, Purchase 버튼을 눌러줍니다. 그리고 페이지2에서는 원하는수량을 입력후에 Update Cart버튼을 눌러 카트를 업데이트 해줍니다. 사용자는 1개로 결제를 눌렀지만 동시성취약점으로 카트안에는 여러개의 물품이 들어가게 되었습니다. 여러개의 물품을 단1개의 물품가격으로 구매하였습니다.

    웹고트 Access Control Flaws - Bypass a Path Based Access Control Scheme

    'guest'사용자는 lessonPlans / en 디렉토리에있는 모든 파일에 액세스 할 수 있습니다. 액세스 제어 메커니즘을 해제하고 나열된 디렉토리에없는 자원에 액세스하십시오. 보려는 파일을 선택한 후 WebGoat는 파일에 대한 액세스 권한이 부여되었는지보고합니다. 시도하고 얻을 흥미로운 파일은 WEB-INF / spring-security.xml과 같은 파일 일 수 있습니다. 파일 경로는 WebGoat이 시작되는 방법에 따라 달라진다는 것을 기억하십시오. 파일이라는 파라미터로 파일의명을 넘겨주고 있습니다. 해당 파라미터를 이용하여 현재 있는 폴더에있는 파일을 불러오는것 같습니다. 그러면 상대경로를 이용하여 다른 폴더에 참조할 수 있을것 같습니다. WebGoat 폴더 접근을 위해서 상대경로를 이용해..

    웹고트 Cross-Site Scripting (XSS) - LAB: Cross Site Scripting (Stage5)

    검색 스태프 페이지의 취약점을 사용하여 반사 된 XSS 공격이 포함 된 URL을 조작하십시오. 링크를 사용하는 다른 직원이 공격의 영향을 받는지 확인하십시오. Larry라는 사원 아이디로 로그인하고, Tom이라는 사원아이디를 검색합니다. 다른사원임에도 불구고 EditProfile 이 가능하였으며 내용을 수정한 후에 UpdateProfile도 가능합니다. admin 계정의 Profile도 수정이 가능합니다. 이제 한곳을 선택하여 그 input 박스에 script 를 추가해줍니다. 성공적으로 XSS공격이 실행되었음을 알 수 있습니다. 다른 직원이 본인의 Profile을 확인할 때 script가 실행됩니다

    웹고트 Cross-Site Scripting (XSS) - LAB: Cross Site Scripting (Stage1)

    1 단계 : XSS (Stored Cross Site Scripting) 공격을 실행합니다. 'Tom'으로서 프로필 편집 페이지의 스트리트 필드에 대해 저장된 XSS 공격을 실행하십시오. 'Jerry'가 공격의 영향을 받는지 확인하십시오. 계정의 비밀번호는 지정된 이름의 소문자 버전입니다 (예 : Tom Cat의 비밀번호는 "tom"입니다). Editprofile 버튼을 눌러서 입력폼이 있는곳으로 가줍니다. 일단은 phone 부분과 Comment 부분에 둘다 넣어보았습니다. Comment 부분은 작동하지 않았습니다. 일단은 XSS 취약점이 있는걸 알아냈습니다.

    웹고트 Malicious Execution - Malicious File Execution

    아래 양식을 사용하면이 페이지에 표시 될 이미지를 업로드 할 수 있습니다. 이와 같은 기능은 웹 기반 토론 게시판 및 소셜 네트워킹 사이트에서 종종 발견됩니다. 이 기능은 Malicious File ntExecution에 취약합니다. 이 강의를 통과하려면 악성 파일을 업로드하고 실행하십시오. 파일이 실행될 수 있음을 증명하기 위해 다음과 같은 다른 파일을 만들어야합니다./root/Desktop/.extract/webapps/WebGoat/mfe_target/guest.txt 테스트를위해 guest.txt 파일을 업로드 하고 마우스오른쪽 버튼을 눌러 이미지 정보보기를 눌러줍니다. 해당 이미지가 올라간 URL 주소가 보입니다. txt 확장자도 무리없이 올라가는것으로 보아 확장자 검사를 안하는것 같습니다. 파..

    웹고트 Parameter Tampering - XML External Entity (XXE)

    * 보스톤, MA- 공항 코드 BOS에서 티켓을 찾으러 가고 있습니다. 티켓을 검색하십시오. * 검색 양식에 결함을 찾아 운영 체제의 루트 디렉토리를 나열하십시오. 엔티티는 특정 문자열을 손쉽게 사용할 수 있도록 해주는 상용구와 같은 역할을 합니다. 내부 엔티티와 외부 엔티티로 선언할 수 있습니다. 내부 엔티티는 XML 문서와 DTD(document type definition) 내부에 선언됩니다. 외부 엔티티는 외부에 파일 형태로 선언됩니다. 외부 엔티티를 사용하는 예제를 한번 보겠습니다.위의 코드가 note.dtd를 참조하는 부분이고, 그 note.dtd안에는 밑의 xml 코드가 들어있습니다. burfsuite에서 인터셉트로 잡고, XML 탭을 확인하면 해당 XML 코드가 전송되는것을 알 수 있는데요..

    웹고트 Parameter Tampering - Exploit Hidden Fields

    Try to purchase the HDTV for less than the purchase price, if you have not done so already. 개발자 도구로 해당 폼의 코드부분으로 가보면 input요소 유형의 type이 HIDDEN 으로 되어있고, value는 2999.99로 되어있습니다. 사용자에게는 보이지 않는 폼입니다. 폼을 서버로 전송할 때 함께 전송되는 요소입니다. 예시코드를 작성해 보았습니다. 하나의 input type는 hidden, 하나는 text로 작성하고 실행시켰습니다. 아무것도 보이지않는걸 알 수있습니다. 하지만 이값을 submit으로 전송하기 때문에 burfsuite로 인터셉트하면 보입니다. POST방식으로 요청하며, Price 값이 그대로 전송됩니다. 여기서 ..

    웹고트 Insecure Communication - Insecure Login

    Stage1: In this stage you have to sniff the password. And answer the question after the login. burfsuite로 인터럽트를해서 보면 sniffy 라고 비밀번호가 그대로 보입니다. stage1 클리어 Stage2: Now you have to change to a secure connection. The URL should start with https:// If your browser is complaining about the certificate just ignore it. Sniff again the traffic and answer the questions stage2는 https 프로토콜 접속이 안되므로 패스. 그냥 암..