전체 글 171

Cookie & Seesion

쿠키(Cookie) Connectionless, Stateless 특성을 갖는 HTTP에서 상태를 유지하기 위해 쿠키가 탄생했다. Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송한다. 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있다. 용도 일반적으로 쿠키는 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용한다. 정보 기록 웹 서버는 각 클라이언트의 팝업 옵션을 기억하기 위해 쿠키에 해당 정보를 기록하고, 쿠키를 통해 팝업 창 표시 여부를 판단한다. 쿠키는 서버와 통신할 때마다 전송되기 때문에 쿠키가 필요 없는 요청을 보낼 때 리소스 낭비가 발생할 수 있다. 최근에는 이러한 단..

Web Hacking/Study 2023.06.26

Burp Suite Option(3)

Reapeater 개별 HTTP 요청을 변경 및 재발급하여 어플리케이션의 응답을 분석할 수 있다. 요청을 수정하여 계속 발행할 수 있어 매개 변수값을 변경하거나 발행 순서를 변경하여 요청함으로써, 입력 값에 의한 취약점 발생을 테스트하는 데 사용할 수 있다. Send to Reapeater을 클릭하면 세부 사항이 간단히 설정되어 쉽게 사용할 수 있다. 요청을 보낼 준비가 되면 Send를 클릭하여 서버로 요청 값을 전송하고, 서버로부터 받은 응답은 Response를 통해 볼 수 있다. Collaborator 이건 Professional 버전에서만 쓸 수 있다. Sequencer 웹 애플리케이션에서 제공하는 값의 임의성을 분석하기 위한 기능이다. 세션 토큰, CSRF 방지 토큰, 암호 재설정 토큰 등과 같이..

Web Hacking/Study 2023.06.26

Burp Suite Option(2)

Intruder 자동화된 사용자 지정 공격을 수행하기 위한 도구이다. 애플리케이션을 테스트할 때, 발생하는 모든 종류의 작업을 자동화하는 데 사용할 수 있다. 즉, Brute Force 공격 및 Fuzzing을 수행할 수 있다. Positions 페이로드 삽입 위치 구성 및 페이로드가 할당되는 공격 유형을 결정하는 데 사용한다. 오른 쪽의 버튼을 통해 페이로드 삽입 위치에 대한 구성을 설정할 수 있다. §로 둘러싸인 부분이 페이로드로 설정된 것이다. Add §: request template에서 페이로드 위치 추가 Clear §: request template에서 모든 페이로드 위치 제거 Auto §: 유효한 위치를 추측하여 그에 맞게 페이로드를 배치 Refresh: 필요한 request template..

Web Hacking/Study 2023.06.26

Burp Suite Option(1)

Dashboard 2.x 버전부터 생긴 기능으로, 대시보드를 통해 자동화된 활동을 한눈에 모니터링하고 제어할 수 있다. 대시보드의 창은 Task, Event log, Iuuse activity로 나누어져 있다. Task 영역의 New scan은 Pro 버전에서만 지원하는 것으로 스캔 기능을 수행할 수 있다. 무료 버전에서는 New live task만을 지원하며, 이를 통해 실시간 크롤링이 가능하다. Event log영역은 작업에 대한 Error, info 등의 이벤트 로그가 기록된다. Issue activity 영역은 스캔 활동에 대한 결과가 기록되는 곳으로 Pro 버전에서만 지원한다. Target 타켓 어플리케이션에 대한 자세한 정보를 확인할 수 있다. 현재 작업의 범위 내에 있는 타겟을 정의할 수 있..

Web Hacking/Study 2023.06.26

Burp Suite 설치 및 기본 설정

Burp Suite란 Burp Suite는 서버와 클라이언트 간의 요청 및 응답 패킷을 Intercept 하는 것이 가능하여 웹 어플리케이션 테스트 취약점 점검에 주로 사용한다. Burp Suite 다운로드 링크: portwigger.net/burp/realeases 다운로드 사이트는 3가지 버전이 있는데 무료인 Community버전을 선택하여 다운로드 했다. 계속 Next를 클릭하고 기다리면 설치가 완료된다. Burp Suite를 실행하면 아래와 같이 저장된 프로젝트를 불러올 수 있다. 불러올 프로젝트가 없으므로 Temporary project를 선택했다. Use Burp defaults 선택 후 Start Burp 클릭 한다. Burp SUite 기본 설정 기본적으로 프록시 설정이 127.0.0.1:..

Web Hacking/Study 2023.06.26

GHDB (Google Hack DB)

GHDB구글 검색 엔진을 이용하여 정보를 수집하는 방법(특정 사이트에 검색 키워드가 데이터베이스화 되어 있음) ex) 관리자 페이지 검색inurl:admin site:co.kr ex) 소스 코드 노출 검색intitle:index.of/home inurl:co.kr ex) 특정 데이터/파일 검색 및 디렉토리 검색intitle:index.of intext:passwd.txtintitle:”index of” intext:이력서index.of “parent Directory” ex) 특정 파일 형식 검색site:com filetype:pdf ccna dump ex) 웹 서버 검색intitle:test.page “Hey, it worked !” “SSL/TLS-aware”intitle:Test.Page.for.A..

Web Hacking/Study 2023.06.26

CSRF Token 오용

Cross Site Request Forgery (CSRF)는 임의 이용자 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점이다. 예) 비밀번호 변경, 게시글 등록 및 삭제, 임의 메시지 전송 등 일반적으로 CSRF 취약점을 방어하기 위해 CSRF Token을 사용한다. CSRF Token 대표적으로 사용되는 CSRF 방어 기법은 CSRF Token 기법이다. CSRF Token은 같은 오리진에서만 접근 가능한 형태로 특정 Token을 저장해두고, HTTP 요청을 전송할 때 함께 전송된다. CSRF Token 값은 보통 HTML form 태그의 hidden 속성에 입력되거나, 동적 요청에서도 사용될 수 있다. CSRF Token 사용 예 다음은 세션에 CSRF Token을 저장하고, HTTP 요..

Web Hacking/Study 2023.06.26

CSRF Advanced

문제 정보 Exercise: CSRF Advanced에서 실습하는 문제입니다. 풀이 문제 파일인 app.py의 소스 코드는 다음과 같다. #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium.webdriver.common.by import By from selenium import webdriver from hashlib import md5 import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read(..

file-download-1

file-download-1 문제 정보 File Download 취약점이 존재하는 웹 서비스입니다. flag.py를 다운로드 받으면 플래그를 획득할 수 있습니다. 풀이 접속하면 먼저 Your uploaded memos가 출력되는걸 볼 수 있다. Upload My Memo에 들어가면 Filename과 Content에 입력란이 있다. 먼저 Filename과 Content에 123, 123을 한 번 넣어봤다. 다시 메인 홈페이지로 돌아와서 확인해보면 123이라는 파일이 업로드 되어 있다. 123의 파일 링크를 한 번 확인해보려면 웹페이지 좌측 하단에 검은색으로 파일 링크가 있는걸 확인할 수 있다. 문제를 살펴보자 import os import shutil from flask import Flask, reque..

image-storage

image-storage 문제 정보 php로 작성된 파일 저장 서비스입니다. 파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. 풀이 제일 처음 접속 화면이다. Upload 페이지이다. 파일을 선택해서 Upload할 수 있다. 그래서 아무거나 한 번 올려보았다. 다음과 같이 List 페이지에 잘 저장된다. 문제를 한 번 살펴보자 upload.php 밑에 있는 코드를 살펴보면 파일을 올릴 때 파일 이름은 걸러주지만 파일의 확장자는 검사하지 않는 것을 확인할 수 있다. list.php 밑의 코드를 살펴보면 .. . index.html 을 빼고 보여주는 것을 알 수 있다.