no image
Mango
https://dreamhack.io/wargame/challenges/90 MangoDescription 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{...} 입니다. {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} Reference Servdreamhack.io 문제 서버에 들어갔을 때의 화면이다. app.get('/login', function(req, res) { if(filter(req.query)){ res.send('filter'); return; } const {uid, upw} = req.query; db.collection(..
2024.11.26
no image
CSS Injection
https://dreamhack.io/wargame/challenges/421 CSS InjectionDescription Exercise: CSS Injection에서 실습하는 문제입니다. 문제 수정 내역 2023.08.09 Dockerfile 및 bot 일부 수정 2023.11.27 main.py 및 requirements.txt 수정dreamhack.ioCSS Injection은 웹 애플리케이션의 보안 취약점을 악용하여 악의적인 CSS 코드를 주입함으로써 사용자의 브라우저에서 의도하지 않은 동작을 발생시키는 공격 방식이다. 이는 주로 웹 애플리케이션이 사용자 입력을 충분히 검증하지 않거나, CSS 파일이나 스타일 태그에 대해 제대로 보호 조치를 취하지 않을 때 발생한다. 문제 서버의 메인 페이지이다..
2024.11.20
no image
AWS 웹 애플리케이션 보안
ArchitectureCloudFormation stack을 통해 위와 같은 아키텍처로 환경 구축을 하고 실습을 진행함아키텍처 설명: AWS 클라우드 상에서 DVWA(Damn Vulnerable Web Application) 서버를 호스팅하기 위해 구성된 네트워크 환경VPN (Virtual Private Cloud) : AWS 상에서 독립된 네트워크를 제공하는 가상 사설 클라우드로, 이 VPC 안에 DVWA 서버와 관련 리소스가 배치가 된다. 서브넷(Subnet) : 퍼블릭 서브넷이 가용 영역(Availability Zone)에 배치된다. 퍼블릭 서브넷 : 인터넷을 통해 접근할 수 있는 네트워크 공간 퍼블릭 서브넷에 배치된 웹 애플리케이션 서버로 DVWA를 사용하였으며, 이는 보안 테스트 목적으로 사용되..
2024.11.16
no image
chocoshop
문제 서버로 들어가면 세션을 발급받는 페이지가 나온다. 세션을 발급받고 전달된 값을 확인하면 coupon_claimed와 money, uuid도 전달되고 있었다. 세션을 발급받으면 shop과 mypage를 확인할 수 있다. 먼저 shop 페이지를 확인해 보면 빼빼로와 flag를 판매하고 있다. 현재 가진 돈이 0이라 위와 같은 문구를 볼 수 있다. 마이페이지에서는 쿠폰 발급과 사용이 가능하다.문제 설명에서 여러 번 쿠폰을 발급받을 수 없지만 사용된 쿠폰을 검사하는 로직이 취약하다고 했기 때문에 발급받은 쿠폰을 사용해서 문제를 해결해야 한다고 생각했다. 일단 발급을 받아보면 1000파운드가 충전되었다.하지만 아직 부족하여 flag를 구매할 수 없다. 그리고 쿠폰을 받은 후에는 coupon_claimed가 ..
2024.11.12
no image
12. React Query와 Recoil
1. React Query 설정React Query : React 애플리케이션에서 서버 상태를 효율적으로 관리하기 위한 강력한 라이브러리 React Query는 버전이 여러 개 있다는 것을 주의해야 한다. https://tanstack.com/query/v4/docs/framework/react/installation TanStack | High Quality Open-Source Software for Web DevelopersHeadless, type-safe, powerful utilities for complex workflows like Data Management, Data Visualization, Charts, Tables, and UI Components.tanstack.com해당 문서를..
2024.11.11
Web
no image
[AWS WAF] 방어 심화
AWS WAF Version 2( 현재는 AWS WAF라고 부름)가 나오면서 기존에 제공되던 AWS WAF는 AWS WAF Classic으로 변경되었다. AWS WAF Classic과 AWS WAFv2는 모두 AWS에서 제공하는 WAF 서비스이지만 서로 별개의 서비스이며 독립적으로 동작하며  AWS WAF Classic의 지원은 2025년 9월 30일에 종료된다.  이전까지 진행한 방어도 AWS WAF v2를 사용했지만 기존의  AWS WAF Classic에도 존재하는 기능을 사용하여 웹 공격을 방어했다. 이번 방어 심화 실습에서는 AWS WAF v2가 생기면서 추가된 JSON 포맷을 이용한 룰 생성을 진행한다.-> 기존에는 룰의 내용을 변경하기 위해 많은 컨디션을 조작하는 API가 필요했지만 JSON..
2024.11.10
no image
[AWS WAF] CUSTOM RULE
Custom Rule 추가 1 AWS WAF에서 제공하는 국가별 IP 정보를 기준으로 특정 국가에서 유입되는 트래픽을 차단  Chrome Extension에서 Browsec VPN 설치 “OFF”를 “On” 으로 변경한 후 “Change” 버튼을 클릭하여 국가를 Singapore로 변경 Browsec 이 “On” 되어 있는 상태에서는 브라우저에서 발생하는 모든 트래픽은 Singapore에서 발생되는 것처럼 트래픽이 전송됨VPN을 켠 상태에서 DVWA 페이지가 정상적으로 접속되는지 확인페이지가 정상적으로 접속이 된다면 Singapore에서 유입되는 트래픽을 차단하기 위해 Rule을 Web ACL에 추가해야 함 Inspect = Originates from a country in 선택요청의 출발 국가를 기반..
2024.11.09
no image
11. 리액트 장바구니 구성
1. cartSlice 작성import jwtAxios from "../util/jwtUtil";import { API_SERVER_HOST } from "./todoApi";const host = `${API_SERVER_HOST}/api/cart`export const getCartItems = async () => { const res = await jwtAxios.get(`${host}/items`) return res.data}export const postChangeCart = async (cartItem) => { const res = await jwtAxios.post(`${host}/change`, cartItem) return res.data}src\api\cart..
2024.11.07
Web
no image
CSP Bypass Advanced
https://dreamhack.io/wargame/challenges/436 CSP Bypass AdvancedDescription Exercise: CSP Bypass의 패치된 문제입니다. 문제 수정 내역 2023.08.07 Dockerfile 제공dreamhack.io  Content Security Policy (CSP) 웹 페이지에서 실행할 수 있는 리소스의 출처를 제어해 악의적인 콘텐츠가 삽입되는 것을 방지한다.주로 문서가 로드할 수 있는 리소스, 특히 JavaScript 리소스를 제어하며, 공격자가 피해자의 사이트에 악성 코드를 삽입할 수 있는 XSS 공격에 대한 방어 수단으로 사용된다.[참고자료]https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP..
2024.11.06
no image
10. 장바구니 API 만들기
1. 장바구니 엔티티 설계회원, 장바구니, 상품, 장바구니 상품, 이미지총 5개의 테이블을 사용한다.새로 생성해야 하는 테이블은 장바구니와 장바구니 상품 테이블 package org.zerock.apiserver.domain;import jakarta.persistence.*;import lombok.*;@Entity@Builder@AllArgsConstructor@NoArgsConstructor@Getter@ToString(exclude = "owner")@Table( name = "tbl_cart", indexes = { @Index(name = "idx_cart_email", columnList = "member_owner")})public class Cart { @I..
2024.11.05
Web
no image
[AWS WAF] Brute Force
무차별 입력 공격 : 정상적인 사용자의 자격증명 정보를 획득하기 위하여 수많은 자격증명 정보를 입력하는 단순하지만 효과적인 자격증명 탈취방법 중의 하나정상적인 사용자의 자격증명 정보를 획득하기 위해 가능한 모든 자격증명(아이디와 비밀번호) 조합을 시도하는 공격 방식이다.자격증명 정보를 하나씩 입력하며, 맞는 조합이 발견될 때까지 반복한다.자격증명을 훔치려는 단순하지만 효과적인 방법 공격 실습은 AWS Cloud9 환경 구축을 하여 코드 기반으로 진행하려고 했으나 서비스가 종료되었고 현재 프로젝트는 aws waf를 중점으로 두고 있기 때문에 다른 방식으로 방어 실습만 진행함* AWS Cloud9은 브라우저만으로 코드를 작성, 실행 및 디버깅할 수 있게 해주는 클라우드 기반 통합 개발 환경(IDE) 무차별 ..
2024.11.05
no image
[AWS WAF] Backdoor
Backdoor 공격이란공격자가 자신이 입력한 명령을 수행할 수 있는 악성 코드를 웹서버에 업로드 후 이를 통해 여러 가지 정보 수집이나 악의적인 활동을 수행하는 공격  Backdoor 공격 실습이미지 파일을 업로드할 수 있는 페이지가 있고, JPEG나 PNG가 아닌 파일을 업로드했을 때 위와 같은 문구가 뜸 "; $cmd = ($_REQUEST['cmd']); system($cmd); echo ""; die;}?>간단한 백도어 스크립트를 작성한다.이 스크립트를 서버에 업로드하면 공격자가 URL에 매개변수(cmd)를 입력하여 원하는 시스템 명령어를 전달하고 실행할 수 있게 된다.$_REQUEST['cmd']로 전달된 값이 존재하면 해당 값(매개변수)을 $..
2024.11.05
Prev 1 2 3 4 ··· 15 Next
반응형