Python + requests
독립 가상환경을 만들고 세션·타임아웃을 갖춘 소규모 검증 코드를 실행합니다.
Python 설치 · requests 패키지 별도 설치실습 범위
이 사이트의 정상 요청 관찰부터 시작해 해당 도구 가이드에서 지정한 교육용 문제에만 적용하세요. 정상 요청을 먼저 기록하고 한 번에 입력 하나만 바꿔 보세요. 토큰·쿠키·FLAG 원문은 외부 도구나 공개 문서에 올리지 마세요.
설치·준비
Python 공식 다운로드 ↗ 설치 파일은 공식 제공처에서만 내려받으세요.
1. Python 확인·설치
Windows에서는 py --version, macOS/Linux에서는 python3 --version을 확인합니다. 없으면 python.org 공식 다운로드 페이지에서 운영체제에 맞게 설치하세요. 설치 후 새 터미널을 열고 버전 출력이 되는지 확인합니다.
2. 별도 연습 폴더에서 가상환경
실습용 폴더를 하나 만들고 그 안에서 가상환경을 생성합니다. 다른 프로젝트 패키지를 건드리지 않도록 합니다. 아래 명령은 Windows PowerShell용이며, macOS/Linux는 python3 -m venv .venv와 .venv/bin/python을 사용합니다.
3. requests 설치
가상환경의 Python으로 pip를 실행합니다. 설치 후 같은 Python으로 import requests가 성공해야 합니다. 관리자 권한이나 전역 pip 설치는 필요하지 않습니다.
처음부터 따라 하기
- 01
Windows 준비 명령
실습용 폴더 안에서 순서대로 실행하세요. PowerShell에서 가상환경 활성화 정책을 바꾸지 않고 실행 파일 경로를 직접 사용합니다.
py -m venv .venv .\.venv\Scripts\python.exe -m pip install requests .\.venv\Scripts\python.exe -c "import requests; print(requests.__version__)" - 02
코드 저장 후 실행
아래 코드를 자신의 실습 폴더에 guide.py로 저장합니다. 두 번의 정상 GET만 보내며 Session으로 쿠키를 유지합니다. Windows는 .\.venv\Scripts\python.exe guide.py, macOS/Linux는 .venv/bin/python guide.py로 실행합니다.
import time import requests url = "https://rokseclab.kr/api/web/basics/http" with requests.Session() as client: for value in ("first", "second"): try: response = client.get(url, params={"sample": value}, timeout=5) response.raise_for_status() data = response.json() print(value, response.status_code, data["query"], bool(data["demoCookie"])) except requests.Timeout: print(value, "timeout: 서버 응답 판정 불가") except (requests.RequestException, ValueError, KeyError) as error: print(value, "환경/형식 오류:", type(error).__name__) time.sleep(0.5) - 03
결과 해석
정상이라면 first/second가 응답 JSON의 query 값에 보이고, 두 번째 요청에서 이전 쿠키가 전달될 수 있습니다. HTTP 오류·타임아웃·JSON 형식 오류는 취약점 성공 판정으로 취급하지 않습니다. 자동화 전에는 항상 정상 기준 요청을 확보하세요.
성공하면 무엇이 보이나요?
- 각 입력의 상태 코드와 응답 JSON의 query
- Session 사용 전후의 쿠키 유지 여부
- timeout·HTTP/JSON 오류를 결과와 구분했는지
실습 기록
두 입력의 상태 코드·query 값·쿠키 전달 여부와 발생한 환경 오류를 분리해 기록하세요. 반복 요청은 실습 범위에서만 소량으로 수행합니다.
막힐 때 확인하기
No module named requests
스크립트를 실행하는 Python과 pip를 실행한 Python이 같은 .venv 경로인지 확인하세요.
py 명령이 없음
Windows의 Python 공식 설치 안내를 확인하세요. 환경에 따라 python 명령을 사용해야 할 수 있습니다.
타임아웃 또는 JSON 오류
네트워크·주소·HTTP 상태·응답 Content-Type을 확인하고, 이것을 취약점 판정으로 기록하지 마세요.
공식 다운로드·설명서
다운로드와 사용법은 제공자의 공식 안내를 기준으로 확인하세요. 화면 명칭은 도구 버전에 따라 조금 바뀔 수 있습니다.