[android] tcpdump를 사용하여 HTTP 요청, 응답 헤더 및 응답 본문을 가져올 수 있습니까?

tcpdump아래 명령을 실행하여 HTTP 데이터를 가져 오는 데 사용 하고 있습니다.

sudo tcpdump -A -s 1492 dst port 80

위 명령의 결과 :

  1. 헤더, 요청 및 응답 헤더라고 생각합니다.
  2. 읽을 수없는 데이터입니다.
  3. URL GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg.

더 명확한 결과가 필요합니다 (예 : 읽기 가능한 요청> 응답 헤더> 응답 본문 등). 결과를 필터링하려면 어떻게해야합니까?



답변

HTTP GET 및 HTTP POST에 대한 tcpdump 필터가 있습니다 (또는 둘 다 메시지 본문에 대해).

  • man tcpdump | less -Ip examples몇 가지 예를 보려면 실행

  • 다음은 HTTP GET을위한 tcpdump를 필터입니다 ( GET= 0x47, 0x45, 0x54, 0x20) :

    sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
    
  • 다음은 HTTP POST에 대한 tcpdump를 필터입니다 ( POST= 0x50, 0x4f, 0x53, 0x54) :

    sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
    
  • 요청 및 응답 헤더와 메시지 본문 ( 소스 )을 포함한 HTTP 트래픽 모니터링 :

    tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
    tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
    

TCP 헤더의 비트 트위들 링에 대한 자세한 내용은 String-Matching Capture Filter Generator (Sake Blok의 설명 링크)를 참조하십시오 .


답변

특정 TCP 연결에 대한 전체 요청과 응답을 매우 쉽게 볼 수있는 “Follow TCP Stream”옵션이있는 Wireshark를 사용하는 것이 좋습니다 . 명령 줄을 사용하려는 경우 TCP 스트림의 콘텐츠를 캡처하고 재구성하는 전용 도구 인 tcpflow 를 사용해 볼 수 있습니다 .

다른 옵션은 EricLaw가 제안한대로 Charles 또는 Fiddler 와 같은 HTTP 디버깅 프록시를 사용하는 것 입니다. 이는 HTTP에 대한 특정 지원을 통해 다양한 종류의 인코딩을보다 쉽게 ​​처리 할 수 ​​있도록하는 장점과이를 재생하기위한 요청 저장 또는 요청 편집과 같은 기타 기능이 있습니다.

Firebug (Firefox), Web Inspector (Safari, Chrome 및 기타 WebKit 기반 브라우저) 또는 Opera Dragonfly 와 같은 도구를 사용할 수도 있습니다.이 도구는 모두 요청 및 응답 헤더와 본문을 볼 수있는 기능을 제공합니다 (대부분의 경우 정확한 바이트 스트림을 볼 수는 없지만 브라우저가 요청을 구문 분석하는 방법).

마지막으로 telnet, netcat 또는 socat 과 같은 것을 사용하여 포트 80에 연결하고 수동으로 요청을 입력하거나 htty 와 같은 도구를 사용 하여 요청을 쉽게 구성하고 응답을 검사하는 데 도움이 되는 도구를 사용 하여 언제든지 요청을 직접 구성 할 수 있습니다.


답변

또 다른 선택이 있습니다 : Chaosreader

따라서 xml을 타사 응용 프로그램에 게시하는 응용 프로그램을 디버깅해야합니다. 나는 모든 노력을 다하는 훌륭하고 작은 펄 스크립트를 찾았습니다. tcpdump 출력 파일에 그냥 넣으면 모든 조작을 수행하고 필요한 모든 것을 출력합니다.

스크립트는 chaosreader0.94라고합니다. 참조 http://www.darknet.org.uk/2007/11/chaosreader-trace-tcpudp-sessions-from-tcpdump/를

그것은 치료처럼 작동했으며 다음을 수행했습니다.

tcpdump host www.blah.com -s 9000 -w outputfile; perl chaosreader0.94 outputfile


답변