목록분류 전체보기 (79)
'll Hacker
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cTDHQR/btsEy2ZCp55/H8QsniL6NcqJwmfskzN3uK/img.png)
XSS 방어 필터링 우회 기법을 공부해보자 다음 언급된 필터링은 잘못된 방식으로 XSS 취약점을 근본적으로 제거하기 위해서는 태그 삽입이 되지 않도록 처음부터 원인을 제거하는 것이 중요 ‼️ 1) 불충분한 XSS 필터링 1-1) 이벤트 핸들러 속성 -> on으로 시작하는 속성 잠.깐.만🖐️ ! 이벤트 핸들러가 뭘까? 특정 요소에서 발생하는 이벤트를 처리하기 위해 존재하는 콜백 형태의 핸들러 함수 이벤트 핸들러 내에 XSS 공격 코드를 삽입해두면 해당 이벤트가 발생했을 때 XSS 공격 코드가 실행됨 태그의 속성 값으로 들어가는 이벤트 핸드러의 종류는 굉장히 다양하며 각 이벤트가 발생하는 원리가 다양함 참고 : https://developer.mozilla.org/en-US/docs/Web/Events Ev..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/wp4GR/btsEyrFc5BN/KT934AFYJogRjdDvch4lOK/img.png)
클라이언트 사이드 취약점 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행가능 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능 수행 요즘 SOP 보안 정책 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 힘들어짐 => 우회 기법 존재 💡웹 리소스 (출처 : ChatGPT) 웹 리소스(Web Resource)는 웹에서 사용되는 모든 종류의 자원이나 자료를 말합니다. 이는 텍스트, 그림, 동영상, 스타일 시트, 스크립트 파일, 데이터 파일 등과 같은 다양한 형태의 정보를 포함할 수 있습니다. 웹 리소스는 웹 페이지의 내용과 디자인을 형성하며, 웹 개발에서는 이러한 리소스들을 효과적으로 관리하여 웹 페이지의 성능을 향상시키는 것이 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bHimQT/btsEyt2qmj3/rzETnp93HWc8IF5x32WnPK/img.png)
실습을 통해 익히기 https://dreamhack.io/wargame/challenges/75/ web-ssrf flask로 작성된 image viewer 서비스 입니다. SSRF 취약점을 이용해 플래그를 획득하세요. 플래그는 /app/flag.txt에 있습니다. 문제 수정 내역 2023.07.17 css, html 제공 Reference Server-side Basic dreamhack.io url 입력창에 나와있는 경로대로 버튼 클릭했더니 위와 같이 나옴 1) 코드 분석 /img_viewer @app.route("/img_viewer", methods=["GET", "POST"]) # Flask 애플리케이션에서 /img_viwer 경로로 들어오는 GET 및 POST 요청을 처리하는 라우트를 정의 d..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/0qzgq/btsEonDdnSV/ok8Ytpo0kT4c0nWp5l4Lm1/img.png)
HTTP 요청을 전송하는 라이브러리를 제공-> HTTP 요청을 보낼 클라이언트뿐만 아니라 서버와 서버간 통신을 위해 사용됨. 다른 웹 애플리케이션에 존재하는 리소스를 사용하기 위한 목적으로 통신 ex) 마이크로서비스 간 통신, 외부 API 호출, 외부 웹 리소스 다운로드 등 PHP -> php-curl NodeJS -> http 파이썬 -> urlib, requests 관리 및 코드의 복잡도를 낮추기 위해 마이크로서비스들로 웹 서비스 구현 마이크로서비스는 주로 HTTP, GRPC 등을 사용해 API 통신함 💡마이크로서비스란? 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식. 이러한 서비스는 독립적인 소규모..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Tp2dh/btsEonXo6sz/k6l5GxE6y0YxBlkZTtBm81/img.png)
실습을 통해 개념 익히기(로드맵 강의자료 정리) https://dreamhack.io/wargame/challenges/38/ image-storage php로 작성된 파일 저장 서비스입니다. 파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. Reference Server-side Basic dreamhack.io 1) 코드 분석 1-1. index.php Home List Upload ▶️ list.php와 upload.php로 이동하는 메뉴 출력 1-2. list.php ▶️ 이용자가 업로드한 파일을 uploads 폴더에 복사하며, 이용자는 http://host1.dreamhack.games:[PORT]/uploads/[FILENAME] URL을 을 통해 접근가..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/eTgZP4/btsEuMH5Il7/0U578l6LmMnOCi0KH2NBG0/img.png)
💡Injection?악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법, 웹 애플리케이션을 대상으로 하는 인젝션 공격은 SQL Injection, Command Injection등이 있다. Command injection은 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생- 입력한 임의 IP에 ping을 전송(in pyhton application)os.system(“ping [user-input]”) - 임의 파일을 읽기os.system(“cat [user-input]”) 💡이런 방식으로 함수를 사용할 때 이용자의 입력을 제대로 검사하지 않으면 임의 명령어가 실행가능‼️..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/uMTxv/btsEijmwOus/DdLiq7IaMSliYHvQety34K/img.png)
실습을 통해 익히기 https://dreamhack.io/wargame/challenges/90/ Mango Description 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{...} 입니다. {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} Reference Serv dreamhack.io 문제를 푸는 법 1) 코드 분석 -> 웹서비스 분석 -> 엔드 포인트 부분 잘보기, 핵심 함수 코드 잘보기 첫번째 엔드 포인트 /login app.get('/login', function(req, res) { // HTTP GET 요청 핸들러 정의, /login 경로로의 GET 요청에 대한 처리 // ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/eoAq81/btsDDc9IptL/KpkxTjKKy82D4mgmkksTnK/img.png)
개발자 도구 사용법 1) 키보드에 F12 or ctrl+shift+i (window 기준) 2) 구조(크롬에서 개발자 도구 실행) 2-1) Elements : html / CSS 상태 확인⏬ 웹 페이지의 구조를 시각적으로 확인하고, 요소의 스타일을 수정가능 화면에 표시되는 요소의 위치와 크기를 확인가능 2-2) Sources : 스크립트 디버깅 (break point 지정 및 변수 모니터링 등)⏬ 웹 페이지의 소스 코드를 확인하고 디버깅가능 JavaScript 파일을 디버깅하고, 중단점을 설정하며, 변수의 값을 확인가능 로컬 및 원격 서버에 연결하여 소스코드를 관리가능 2-3) Console : 콘솔 (변수 정보를 확인하고 오류 메시지 표시) ⏬ Javascript 코드를 실행하고 디버깅하는데 사용됨 에..