1. 程式人生 > >linux下抓取http資料包的兩種方式

linux下抓取http資料包的兩種方式

0x01 利用pcap包進行抓包

利用pcap對http進行抓包,缺點是pypcap包要安裝一系列的依賴包,安裝比較麻煩。且pypcap包更新緩慢。

#_*_coding=utf-8_*_
import pcap
import dpkt

class Capute(object):
    '''
    類的作用是抓取http請求
    '''
    def __init__(self):
        self.target = 'demo.aisec.cn'
        self.caputeRequest()
    
    def caputeRequest(self):
        '''
        監聽當前類的請求
        '''
        pc = pcap.pcap('eth0')
        pc.setfilter('tcp port 80')

        for ptime,pdata in pc:
            p = dpkt.ethernet.Ethernet(pdata)
            try:
                ip = p.data
                tcp = ip.data
                if tcp.dport == 80 and len(tcp.data)>0:
                    http = dpkt.http.Request(tcp.data)
                    host = http.headers['host']
                    if (host == self.target):
                        if http.method == "GET":
                            http_get_url = "http://{0}{1}".format(self.target, http.uri)
                            print http_get_url  #get型請求
                                                
                        elif http.method == "POST":
                            http_url = "{0}?".format(http.uri) if http.uri[-1:]!="?" else http.uri
                            if http.body:
                                http_post_url = "http://{0}{1}{2}".format(self.target, http_url, http.body)
                            else:
                                http_post_url = "http://{0}{1}".format(self.target,http_url)
                            print http_post_url  #post請求,body內容直接拼接在URL後,可根據自己的情況修改
            except Exception,e:
                pass

抓包結果:
[email protected]:/home/test/test# python cap.py 
http://demo.aisec.cn/demo/aisec/login2.php?username=aaaaaaaa&password=aaaaaaaaaaaaaa
http://demo.aisec.cn/demo/aisec
http://demo.aisec.cn/demo/aisec/
http://demo.aisec.cn/demo/aisec/ajax_link.php?id=1&t=0.9103860526513613?
http://demo.aisec.cn/demo/aisec/
http://demo.aisec.cn/demo/aisec/ajax_link.php?id=1&t=0.22269654061950928?
http://demo.aisec.cn/demo/aisec/html_link.php?id=2


0x02 利用scapy進行抓包

scapy功能強大,易於安裝和使用,有完整的開發文件等等優點,建議使用scapy進行抓包。

#_*_coding=utf-8_*_

import sys
import scapy_http.http as HTTP
from scapy.all import *
from scapy.error import Scapy_Exception

class Capute(object):
    '''
    嗅探資料包
    '''
    def __init__(self):
        self.host = 'demo.aisec.cn'
        self.port = 80
        self.run()

    def pktTCP(self,pkt):
        if HTTP.HTTPRequest in pkt:
            test=pkt[TCP].payload
            if HTTP.HTTPRequest in pkt:
                if test.Method == "POST":
                    headers,body= str(test).split("\r\n\r\n",1)
                    path = "{0}?".format(test.Path) if test.Path[-1:] !="?" else test.Path
                    link = "http://{0}{1}{2}".format(test.Host,path,body)
                    if test.Host == self.host:
                        print link
                elif (test.Method == "GET"):
                    link = "http://{0}{1}".format(test.Host,test.Path)
                    if test.Host == self.host:
                        print link
                else:
                    pass
    def run(self):
        sniff(filter='tcp and port %d'%self.port,prn=self.pktTCP)


抓包結果:

[email protected]:/home/test/test# python http.py 
http://demo.aisec.cn/demo/aisec/login2.php?username=test&password=aaaaaa
http://demo.aisec.cn/demo/aisec/
http://demo.aisec.cn/demo/aisec/ajax_link.php?id=1&t=0.5521931602579171?
http://demo.aisec.cn/demo/aisec/html_link.php?id=2


相關推薦

linuxhttp資料方式

0x01 利用pcap包進行抓包 利用pcap對http進行抓包,缺點是pypcap包要安裝一系列的依賴包,安裝比較麻煩。且pypcap包更新緩慢。 #_*_coding=utf-8_*_ import pcap import dpkt class Capute(obj

Wireshark學習筆記——如何快速HTTP資料

0.前言    在火狐瀏覽器和谷歌瀏覽器中可以非常方便的除錯network(抓取HTTP資料包),但是在360系列瀏覽器(相容模式或IE標準模式)中抓取HTTP資料包就不那麼那麼方便了。雖然也可使用HttpAnalyzer等工,但是畢竟都是收費軟體。只需通過合適的過濾和操作,

Linux網路資料命令tcpdump

tcpdump是Linux命令列下常用的的一個抓包工具。 tcpdump的命令格式 tcpdump的引數眾多,通過man tcpdump可以檢視tcpdump的詳細說明。 tcpdump [-i

linux 如何HTTP流量(httpry)

dev 適用於 scroll 用法 restful服務 set 滾動 sql www. 基於某些原因你需要嗅探HTTP Web流量(即HTTP請求和響應)。例如,你可能會測試Web服務器的性能,或者x奧uy調試Web應用程序或RESTful服務 ,又或者試圖解決PAC(代理

ubuntu 使用tcpdump TCP資料

問題來源: 需要測試一個閘道器(包括機頂盒和路由器),網線直接連線電腦和待測機器。配置IP地址為192.168.1.100,保證IP地址與網線另一端閘道器IP地址192.168.1.1在同一個網段。 手頭有傳送的json報文資料段,直接用win7下的tcp通訊助手傳送總是失敗,得不到正確的響

【安全工具】瀏覽器Burpsuitehttps資料

What 很多人一直在困擾的Burpsuite配置問題,請認真反問下自己以下問題(ps: 都100%確定的話就不用繼續往下看了,免得waste time…): burp的代理選擇地址是否正確? 代理外掛是否禁用?(其實不用禁用,可以往下看) 證書

linux內存中明文密碼mimipenguin

linux滲透 明文密碼抓取 下載地址:https://github.com/huntergregal/mimipenguin 基本使用語法:[email protected]/* */:~/eth10/eth10# wget https://codeload.github.com/hun

Linux登陸使用者密碼神器mimipenguin

windows下有Mimikatz,現在linux下有了mimipenguin,國外安全研究員huntergregal釋出了工具mimipenguin,一款Linux下的密碼抓取神器,彌補了Linux下密碼抓取的空缺。 編寫思路來自流行的windows密碼抓取神器mimikatz 詳情通過轉儲過程和提取那

wireshark本地資料

windows系統中,本地向自身傳送資料包沒有經過真實的網路介面,而是通過環路(loopback interface)介面傳送,所以使用基於只能從真實網路介面中抓資料的winpcap是無法抓取本地資料包,需要使用npcap,npcap是基於winpcap 4.1.3開發的,api相容WinPcap,

[記錄]Java網路爬蟲基礎和網站資料個小例項

前段時間在學習爬蟲,並從網路抓取了一些簡單的資料,記錄一下。 抓取分成下面3個部分: 1、網路請求 2、解析抓取下來的頁面,並且處理亂碼或者解壓程式碼的問題 3、拿到指定的資料、資源 完整程式碼如下: 第一個例項: /** * 從某網站查詢所有帖子標題 * 把所有

模擬器配置使用burpsuitehttps資料

在利用模擬器對app進行測試時,往往需要抓取資料包進行分析,當app採用HTTPS協議並需要對證書的有效性進行驗證時,在模擬器中設定代理後,app會出現“網路狀況不佳”或“當期網路錯誤” 部分內容無法顯示等問題: 解決該問題的主要步驟為: 一、在模擬器中安裝

解決windows10下面無法charles資料問題

http://blog.csdn.net/lyhdream/article/details/52288886 在windows10下發現使用charles無法抓取資料包 網上差了一下,說是防火牆的問題 於是關閉防火牆後,發現果然能夠抓取資料包了,但是關閉防火牆後並不是一

Charles的使用二 設定代理Http請求

Charles 主要提供兩種檢視封包的檢視,分別名為 “Structure” 和 “Sequence”。 1.Structure 檢視將網路請求按訪問的域名分類。 2.Sequence 檢視將網路請求按訪問的時間排序。 下面將一一介紹這些如何配置和

Burp Suitegzip資料

把資料包儲存到檔案,這裡我只需要請求(request)包【如果request/response包都是gzip編碼另說】,因此在Burp→Proxy→HTTP history中不能直接Save item,需要Send to Repeater,然後Copy to file而不是Save item

3.10以上charles版本Https資料

charles3.10一下的版本抓包參見一下文章即可: Version of Charles prior to v3.10 used a single SSL Root Certificate. You can still download the legacy c

使用 Charles app 資料

前言Charles 是一款非常實用的抓包工具。它通過電腦端代理,攔截網路請求和響應來實現資料包的

用C++網路資料--嗅探器的設計原理

嗅探器作為一種網路通訊程式,也是通過對網絡卡的程式設計來實現網路通訊的,對網絡卡的程式設計也是使用通常的套接字(socket)方式來進行。但是,通常的套接字程式只能響應與自己硬體地址相匹配的或是以廣播形式發出的資料幀,對於其他形式的資料幀比如已到達網路介面但卻不是發給此地址

python+pypcap+dpktIP資料

1.簡介 pypcap庫是一款基於libpcap封裝的為python語言提供介面的抓包庫。 dpkt則是用來解析資料包的庫。 pip install pypcap pip install dpkt 2. #coding:utf-8 import pc

Fiddler在https資料時如何解決Tunnel to 443的問題?

Fiddler這款工具就不詳細介紹了,網上的資料一抓一大把。它作為抓取web和手機的資料包是一個利器。但是對於剛剛安裝好fiddler的施主們來說,開啟fiddler僅僅能夠抓取的是HTTP的請求----這顯然是不夠的!在平常的工作中,很多產品或系統都是https的請求,沒有

用C++實現網路程式設計---網路資料的實現方法

做過網管或協議分析的人一般都熟悉sniffer這個工具,它可以捕捉流經本地網絡卡的所有資料包。抓取網路資料包進行分析有很多用處,如分析網路是否有網路病毒等異常資料,通訊協議的分析(資料鏈路層協議、IP、UDP、TCP、甚至各種應用層協議),敏感資料的捕捉等。下面我們就來看