목록웹 해킹 (100)
Oh! JUN

1. mkcert 설치하기 Releases · FiloSottile/mkcert A simple zero-config tool to make locally trusted development certificates with any names you'd like. - FiloSottile/mkcert github.com 위의 사이트에서 사용자의 OS와 맞는 버전을 다운로드 받으면 됩니다. 2. 로컬 CA 생성하기 CMD 실행할 때 관리자 모드로 들어가야 됩니다. C:\Windows\System32>mkcert -install rootCA.pem - 로컬 인증 기관의 공개키를 담고 있습니다. rootCA-key.pem - 로컬 인증 기관의 개인키를 담고 있습니다. 3. 인증서 생성하기 C:\Windows\S..

1. JSESSIONID와 CSRF 토큰을 활용해서 로그인 시도해보기 로그인하면 Cookie를 전송하는 것 처럼 보이지만, 사실 이전에 로그아웃 하고 서버에서 무효화 시킨 세션이고 웹 브라우저에서는 바로 삭제되지 않을 수 있습니다. 그래서 위에 burp suite 처럼 쿠키가 요청되는것 처럼 보이는거고 서버에서 세션을 생성하고 세션에 대한 고유 식별자를 JSESSIONID 쿠키에 저장하여 브라우저로 전송하게 됩니다. 로그인을 성공하게 되면 서버한테 새로 응답받은 JSESSIONID를 확인할 수 있습니다. 그래서 기존에 사용하는 크롬 웹 브라우저 말고 다른 웹 브라우저로 JSESSIONID를 사용해서 로그인을 시도해보자 했지만, CSRF 토큰도 사용중이어서 토큰을 알아보자 시도해봤습니다. XSS 취약점을 ..

1. 문제설명 CSRF 및 Content-Type 이전 섹션에서 우리는 Content-Type 에 의존하는 것이 CSRF에 대한 보호가 아니라는 것을 보았습니다. 이 섹션에서는 CSRF로부터 보호되지 않는 API에 대해 CSRF 공격을 수행할 수 있는 또 다른 방법을 살펴보겠습니다. 이 과제에서는 다음 JSON 메시지를 엔드포인트에 게시해야 합니다. 2. 문제풀이 name, email, subject, message에 dummy값 넣어서 burp로 요청을 캡쳐해서 살펴봤습니다. Content-Type : application/Json로 되어있는걸로 봐서 Content-Type을 변경해서 CSRF공격을 수행하는것 같습니다. Content-Type을 enctype="text/plain"로 변경해주고 JSON..

1. 문제설명 다른 사람을 대신하여 리뷰 게시 아래 페이지는 댓글/리뷰 페이지를 시뮬레이션합니다. 여기서 차이점은 CSRF 공격과 마찬가지로 이전 연습과 마찬가지로 다른 곳에서 제출을 시작해야 한다는 것입니다. 생각보다 쉽습니다. 대부분의 경우 더 까다로운 부분은 CSRF 공격을 실행하려는 위치를 찾는 것입니다. 전형적인 예는 누군가의 은행 계좌로의 계좌/전신 송금입니다. 하지만 여기서는 간단하게 설명하겠습니다. 이 경우 현재 로그인한 사용자를 대신하여 리뷰 제출을 실행하기만 하면 됩니다. 2. 문제풀이 이전 문제와 해결방법은 거의 똑같습니다. 하지만 stars의 값의 데이터형과 validataReq값을 올바르게 설정해줘야 문제를 해결할 수 있습니다. 이전 문제와 동일하게 코드를 생성하고 댓글을 달면 문..

1. 문제설명 기본 CSRF 가져오기 연습 로그인한 동안 외부 소스에서 아래 양식을 트리거합니다. 응답에는 '플래그'(숫자 값)가 포함됩니다. 플래그 확인 아래 이전 페이지에서 획득했어야 하는 플래그를 확인하세요. 2. 풀이 제출 버튼을 클릭하면 [그림 - 1]와 같은 응답값을 확인할 수 있습니다. 메시지를 살펴보면, "요청이 원래 호스트로 부터 온것으로 나타난다" 문구를 확인할 수 있고 결과적으로 실패한것을 확인할 수 있습니다. 그렇다면, 해당 문제를 해결하기 위해서는 요청이 원래의 호스트가 아닌 타 호스트로 부터 오도록 설정해줘야 합니다. 제출 버튼을 누르면 요청을 보내는 주소와 요청방식을 동일하게 "http://127.0.0.1:5555/WebGoat/csrf/basic-get-flag"와 POST..

1. 신뢰할 수 있는 웹사이트는 XSS 공격으로부터 안전합니까? 해결 방법 1: 예, 브라우저는 실행 전에 코드를 확인하므로 안전합니다. 해결 방법 2: 그렇습니다. Google에는 악성 코드를 차단하는 알고리즘이 있기 때문입니다. 해결 방법 3: 아니요. 실행되는 스크립트가 브라우저의 방어 알고리즘을 뚫기 때문입니다. 해결 방법 4: 아니요. 신뢰할 수 있는 것으로 확인된 경우 브라우저는 해당 웹 사이트를 신뢰하기 때문에 브라우저는 스크립트가 악성이라는 것을 알지 못합니다. 2. XSS 공격은 언제 발생합니까? 해결 방법 1: 데이터는 신뢰할 수 있는 소스를 통해 웹 애플리케이션에 입력됩니다. 해결 방법 2: 데이터는 웹사이트를 통해 브라우저 애플리케이션에 입력됩니다. 해결 방법 3: 악성 콘텐츠인지 ..

Try it! DOM 기반 XSS 일부 공격은 "블라인드"입니다. 다행히 여기에서 서버가 실행 중이므로 성공 여부를 알 수 있습니다. 방금 찾은 경로를 사용하고 WebGoat에서 내부 기능을 실행하기 위해 인코딩 없이 경로의 매개변수를 반영한다는 사실을 사용할 수 있는지 확인하세요. 실행하려는 기능은 ... webgoat.customjs.phoneHome() 물론 콘솔/디버그를 사용하여 트리거할 수 있지만 새 탭에서 URL을 통해 트리거해야 합니다. 일단 트리거하면 후속 응답이 임의의 숫자와 함께 브라우저 콘솔에 표시됩니다. 아래에 임의의 숫자를 입력하세요. 1. 콘솔 이전 문제 참고해서 http://127.0.0.1:5555/WebGoat/start.mvc#test/%3Cscript%3Ewebgoat..

DOM 기반 XSS의 잠재력 식별 DOM 기반 XSS는 일반적으로 클라이언트 측 코드에서 경로 구성을 검색하여 찾을 수 있습니다. 페이지에 "반영"되는 입력을 받는 경로를 찾으세요. 이 예에서는 경로 핸들러에서 일부 '테스트' 코드를 찾고 싶을 것입니다(WebGoat는 백본을 기본 JavaScript 라이브러리로 사용합니다). 때로는 테스트 코드가 프로덕션 환경에 남겨지는 경우도 있습니다(그리고 종종 테스트 코드가 매우 단순하고 보안이나 품질 관리가 부족합니다!). 당신의 목표는 경로를 찾아 활용하는 것입니다. 우선... 기본 경로는 무엇입니까? 예를 들어, 이 강의의 URL을 살펴보세요. /WebGoat/start.mvc#lesson/CrossSiteScripting.lesson/9와 같은 형태여야 ..