Wargame | CTF

    웹고트 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 프로토콜 접속이 안되므로 패스. 그냥 암..

    웹고트 AJAX Security - JSON Injection

    * 보스톤, MA - 공항 코드 BOS에서 시애틀, WA - 공항 코드 SEA로 여행 중입니다.* 공항의 3 자리 코드를 입력하면 티켓 가격을 묻는 AJAX 요청이 실행됩니다.* 사용가능 두 항공편이 있으며, 정차역이없는 비싼 항공편과 2 정거장의 저렴한 요금이 있음을 알수있습니다.* 귀하의 목표는 멈추지 않고 값이 싼 가격에 하나를 얻으려고하는 것입니다. GET 요청으로 여러 파라메터를 전달해 주는모습입니다. Request Interrupt에서 마우스 오른쪽을 클릭하고 Do intercept - Response to this request 를 눌러 이 요청에 대한 응답에 인터럽트를 걸어줍니다. 응답에 인터럽트가 걸려서 조작이 가능합니다. 가격을 마음대로 조정해주고 forward 해줍니다.

    웹고트 Injection flow - Command Injection

    명령 주입 공격은 매개 변수 기반 사이트에 심각한 위협이됩니다. 공격의 배후에있는 방법은 배우기 쉽고 피해는 전체 시스템 손상에 이르기까지 다양합니다. 이러한 위험에도 불구하고 인터넷 상에있는 수많은 시스템이 이러한 형태의 공격에 취약합니다. 위협을 쉽게 유발할뿐만 아니라, 약간의 상식과 사전 고려 사항으로 거의 완전히 막을 수있는 위협이기도합니다. 이 수업은 학생들에게 매개 변수 주입에 대한 몇 가지 예를 보여줍니다. 모든 입력 데이터, 특히 OS 명령, 스크립트 및 데이터베이스 쿼리에 사용되는 데이터는 항상 위생적으로 관리하는 것이 좋습니다. 운영 체제에 명령을 주입하십시오. 명령어가 더블쿼터로 묶여있으므로 유의하고 인젝션코드를 짜줍니다. 주입할 코드는 ";ifconfig;echo " 입니다. 맨뒤의..

    웹고트 Injection flow - Log Spoofing

    * 아래의 회색 영역은 웹 서버의 로그 파일에 기록 될 내용을 나타냅니다. * 귀하의 목표는 사용자 이름 "admin"이 로그인에 성공했는지 확인하는 것입니다. * 로그 파일에 스크립트를 추가하여 공격을 강화하십시오. burfsuite로 프록시를 잡아주고 그냥 로그인이 성공하였다는 메세지를 작성하여 넣어줍니다. admin 계정에대한 로그인이 성공했다는 메세지를 넣어서 Log Spoofing 공격을 해줍니다. 로그를 보는 관리자가 속을수 있습니다.

    웹고트 Injection flow - Blind String SQL Injection

    아래 양식을 통해 사용자는 계좌 번호를 입력하고 계좌 번호가 유효한지 여부를 결정할 수 있습니다. 이 양식을 사용하여 참 / ​​거짓 테스트를 개발하여 데이터베이스의 다른 항목을 검사하십시오.참조 값 : 'A'= 65 'Z'= 90 'a'= 97 'z'= 122목표는 cc_number가 4321432143214321 인 행에 대한 테이블 핀의 필드 이름 값을 찾는 것입니다.이 필드는 varchar 유형의 문자열입니다. 발견 된 이름을 공과에 합격하도록 양식에 기입하십시오. 검색된 이름 만 양식 필드에 입력해야 철자 및 대소 문자에주의를 기울여야합니다.SUBSTIRING 함수는 문자열을 자르는 함수로, 함수 원형은 다음과 같습니다. SUBSTRING(컬럼 또는 문자열, 시작위치, 길이) 101 and (S..

    웹고트 Injection flow - String SQL Injection

    SQL 주입 공격은 데이터베이스 중심 사이트에 심각한 위협이됩니다. 공격의 배후에있는 방법은 배우기 쉽고 피해는 전체 시스템 손상에 이르기까지 다양합니다. 이러한 위험에도 불구하고 인터넷 상에있는 엄청난 수의 시스템이 이러한 형태의 공격을 받기 쉽습니다. 위협을 쉽게 유발할뿐만 아니라, 약간의 상식과 사전 고려 사항으로 쉽게 예방할 수있는 위협이기도합니다. SQL 인젝션의 위협이 다른 방법으로 예방되는 경우에도 모든 입력 데이터, 특히 OS 명령, 스크립트 및 데이터베이스 쿼리에 사용되는 데이터는 항상 위생적으로 관리하는 것이 좋습니다.일반 목표 : 아래 양식을 통해 사용자는 신용 카드 번호를 볼 수 있습니다. 모든 신용 카드 번호가 표시되는 SQL 문자열을 주입하십시오. 'Smith'라는 사용자 이름을..

    웹고트 Injection flow - Blind Numeric SQL Injection

    아래 양식을 통해 사용자는 계좌 번호를 입력하고 계좌 번호가 유효한지 여부를 결정할 수 있습니다. 이 양식을 사용하여 참 / ​​거짓 테스트를 개발하여 데이터베이스의 다른 항목을 검사하십시오. 목표는 cc_number가 1111222233334444 인 행에 대한 테이블 핀의 필드 핀 값을 찾는 것입니다.이 필드는 정수 유형 인 int 유형입니다. 발견 된 핀 값을 양식에 넣어 수업을 통과시킵니다.실험을통해 101번이라는 숫자는 valid 하다는 결과를 알아냈습니다. 쿼리상 101을 select구문으로 찾아와서 있으면 True를 반환하는것 같습니다. 101이 참임을 이용하여 and를 사용해 pin값을 찾아봅시다. 101 and ((select pin from pins where cc_number = '1..

    웹고트 Injection flow - Database Backdoors

    1 단계 : 문자열 SQL 주입을 사용하여 둘 이상의 SQL 문을 실행합니다. 이 단원의 첫 번째 단계에서는 취약한 필드를 사용하여 두 개의 SQL 문을 만드는 방법을 알려줍니다. 첫 번째는 시스템이고 두 번째는 완전히 당신 것입니다. 귀하의 계정 ID는 101입니다.이 페이지에서 귀하의 암호, ssn 및 급여를 볼 수 있습니다. 연봉을 더 높은 것으로 상향 갱신하는 또 다른 업데이트를 주입하십시오.세미콜론으로 구분해주고 update employee set salary=100000 where user_id=101 를 입력해주어 다른 쿼리도 같이 실행하게 만듭니다. 변경이 완료되었습니다

    웹고트 Injection flow - XPATH Injection

    아래 양식을 통해 직원들은 급여를 포함한 모든 개인 데이터를 볼 수 있습니다. 귀하의 계정은 Mike / test123입니다. 귀하의 목표는 다른 직원 데이터를 보는 것입니다. 아이디와 패스워드란에 전부 참이되도록 ' or ''=' 를 넣어줍니다. 출력완료

    웹고트 Injection flow - Numeric SQL Injection

    SQL 주입 공격은 데이터베이스 중심 사이트에 심각한 위협이됩니다. 공격의 배후에있는 방법은 배우기 쉽고 피해는 전체 시스템 손상에 이르기까지 다양합니다. 이러한 위험에도 불구하고 인터넷 상에있는 엄청난 수의 시스템이 이러한 형태의 공격을 받기 쉽습니다.위협을 쉽게 유발할뿐만 아니라, 약간의 상식과 사전 고려 사항으로 쉽게 예방할 수있는 위협이기도합니다.SQL 인젝션의 위협이 다른 방법으로 예방되는 경우에도 모든 입력 데이터, 특히 OS 명령, 스크립트 및 데이터베이스 쿼리에 사용되는 데이터는 항상 위생적으로 관리하는 것이 좋습니다.일반 목표 : 아래 양식을 통해 사용자는 날씨 데이터를 볼 수 있습니다. 모든 날씨 데이터가 표시되는 SQL 문자열을 주입하십시오. 그냥 New York 을 조회하면 하나만 ..

    웹고트 Injection flow - Stage 3: Numeric SQL Injection

    3 단계 : SQL 인젝션을 실행하여 권한을 무시합니다. 정규 직원 인 '래리 (Larry)'는 View 스태프 페이지의 View 함수 매개 변수에 SQL 인젝션을 사용하여 보스 ( 'Neville')의 프로필을 봅니다. 리스트를 요청하는 파라메터들을 살펴보면 employee_id가 있고, id가 젤 높은 사람이 보스입니다. 앞의 구문을 참으로 만들고 employee_id를 내림차순으로 정렬하면 젤 높은 숫자(어드민)이 출력됩니다. 성공적으로 Neville의 프로필이 조회되었습니다.