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




에러 매핑 (4)

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

  • man tcpdump | less -Ip examples 실행 man tcpdump | less -Ip examples man tcpdump | less -Ip examples 몇 가지 예제를 볼 수있는 예제

  • 다음은 HTTP GET 용 tcpdump 필터입니다.

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

    sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
    
  • 요청 및 응답 헤더와 메시지 본문 ( source )을 포함한 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 헤더의 bit-twiddling에 대한 더 많은 정보는 String Matching Capture Filter Generator (Sake Blok의 설명 링크)를 보라.

나는 아래 명령을 실행하여 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 .

예를 들어, 읽기 쉬운 요청> 응답 헤더> 응답 본문과 같은 더 명확한 결과가 필요합니다. 어떻게 결과를 필터링 할 수 있습니까?


다음은 또 다른 선택입니다 : Chaosreader

그래서 xml을 타사 응용 프로그램에 게시하는 응용 프로그램을 디버깅해야합니다. 나는 모든 열심히 일하는 화려한 작은 펄 스크립트를 발견했다 - 당신은 단지 tcpdump 출력 파일을 집어 넣는다. 그리고 그것은 모든 조작을 수행하고 필요한 모든 것을 출력한다.

이 스크립트의 이름은 chaosreader0.94입니다. http://www.darknet.org.uk/2007/11/chaosreader-trace-tcpudp-sessions-from-tcpdump/ 참조하십시오 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

Wireshark 사용하는 것이 좋습니다. Wireshark 에는 "TCP 스트림 따르기"옵션이있어 특정 TCP 연결에 대한 전체 요청과 응답을 매우 쉽게 볼 수 있습니다. 명령 행을 사용하기를 원한다면 TCP 스트림의 내용을 캡처하고 재구성하는 도구 인 tcpflow 를 사용해보십시오.

다른 옵션은 EricLaw가 제안한 것처럼 Charles 또는 Fiddler 와 같은 HTTP 디버깅 프록시를 사용하는 것입니다. 이것들은 다양한 종류의 인코딩과 그것들을 재생하기위한 요청을 저장하거나 요청을 편집하는 것과 같은 다른 기능을 다루기 쉽게하기 위해 HTTP에 대한 특별한 지원을하는 이점이 있습니다.

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

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


REST 스타일 리소스의 예를 제공하려면 다음을 수행하십시오.

책 정보가있는 "POST / books"는 새 책을 만들고 해당 책을 식별하는 새로운 URL ( "/ books / 5")로 응답 할 수 있습니다.

"PUT / books / 5"는 ID가 5 인 새 책을 만들거나 기존 책을 ID 5로 대체해야합니다.

비 리소스 스타일에서 POST는 부작용이있는 모든 것에 사용할 수 있습니다. 한가지 다른 점은 PUT은 멱등 (idempotent)해야한다는 것입니다. 같은 URL에 동일한 데이터가 여러 개 있어야합니다. 여러 POST가 여러 객체를 만들거나 POST 액션이 무엇이든 상관 없습니다.







android http tcp tcpdump