내 서버는 토큰을 사용하여 특정 API에 대해 컬 명령을 실행합니다. 예를 들어:
curl --header "Private-Token: aaaaaaaaaaaaaa" http://mysite.example.com/api/v4/any
tcpdump
특정 토큰을 사용하여 이 API에 대한 모든 요청을 캡처할 수 있나요? 그렇다면 어떻게 해야 할까요? 다른 아이디어도 훌륭해요.
답변1
HTTP 트래픽을 듣고 tcpdump
실제 패킷 내용을 보려면 다음 명령을 사용할 수 있습니다.
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com"
그러나 데이터 필터링은 특정 패킷 위치에서만 수행될 수 tcpdump
있으며 이 경우에는 불가능합니다.
따라서 다음을 ngrep
사용하여 들을 수도 있습니다.철사네트워크 인터페이스의 특정 문자열 데이터를 사용합니다.
sudo ngrep -q "Private-Token: aaaaaaaaaaaaaa" "port 80 and host mysite.example.com"
실제 호스트/포트 필터에 대해서는 tcpdump
/BPF 필터에 대한 간략한 요약을 참조하세요.TCPDUMP 표현식
또한 wireshark
@StephenHarris의 추천은 그래픽 인터페이스가 있기 때문에 훌륭합니다. tcpdump
나중에 에서 사용할 수 있도록 파일에 원시 데이터를 쓰 려면 wireshark
다음을 수행할 수 있습니다.
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com" -w mycapture.pcap
Capture 애플리케이션 레벨 패킷 요청을 사용할 수도 있습니다 sysdig
. (테스트 없이 답을 확신할 수 없음)
sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains "Private-Token: aaaaaaaaaaaaaa"