-T json 으로 JSON 형식 표시
이 단계에서는 Wireshark 의 Tshark 유틸리티를 사용하여 캡처된 HTTP 트래픽 데이터를 JSON 형식으로 지정하는 방법을 살펴보겠습니다. JSON (JavaScript Object Notation) 은 사람이 읽기 쉽고 기계가 구문 분석하기 쉬운 가벼운 데이터 형식입니다. 이는 네트워크 트래픽을 프로그래밍 방식으로 분석하는 데 이상적입니다.
시작하기 전에, JSON 출력이 왜 가치 있는지 이해해 봅시다.
- 구조화된 데이터 구성
- 다른 도구 및 스크립트와의 쉬운 통합
- 데이터 교환을 위한 표준화된 형식
- 먼저, 명령을 실행할 기본 작업 디렉토리에 있는지 확인합니다.
cd ~/project
- 이제 Tshark 를 실행하여 HTTP 요청을 캡처하고 JSON 형식으로 출력해 보겠습니다. 이 명령은 필터링과 JSON 형식을 결합합니다.
sudo tshark -Y "http.request" -T json -e http.request.method -e http.host -e http.request.uri
이 명령의 각 부분이 무엇을 하는지 자세히 살펴보겠습니다.
-Y "http.request": 이 필터는 Tshark 에게 HTTP 요청 패킷만 표시하도록 지시합니다.
-T json: 출력을 JSON 형식으로 원한다고 지정합니다.
-e 필드: 각 HTTP 요청에서 특정 정보를 추출합니다.
http.request.method: 사용된 HTTP 메서드 (GET, POST 등)
http.host: 액세스 중인 웹사이트 도메인
http.request.uri: 요청된 특정 경로 또는 리소스
- 캡처할 테스트 트래픽을 생성하기 위해 두 번째 터미널 창을 열고 다음 curl 명령을 실행합니다.
curl http://example.com
curl http://example.org/sample
이 테스트 트래픽이 생성되는 동안 Tshark 명령을 실행하면 다음과 같은 구조의 출력을 볼 수 있습니다.
[
{
"_index": "packets-1",
"_source": {
"layers": {
"http.request.method": ["GET"],
"http.host": ["example.com"],
"http.request.uri": ["/"]
}
}
},
{
"_index": "packets-2",
"_source": {
"layers": {
"http.request.method": ["GET"],
"http.host": ["example.org"],
"http.request.uri": ["/sample"]
}
}
}
]
각 HTTP 요청이 명확하게 레이블이 지정된 필드가 있는 별도의 JSON 객체가 되는 방식을 확인하십시오. 이 구조는 다음을 쉽게 식별할 수 있도록 합니다.
- 어떤 웹사이트에 액세스했는지
- 어떤 유형의 요청이 이루어졌는지
- 어떤 특정 페이지 또는 리소스가 요청되었는지
JSON 형식은 나중에 분석하기 위해 이 데이터를 저장하거나 JSON 데이터를 자동으로 처리할 수 있는 다른 도구에 공급하려는 경우 특히 유용합니다.