如何抓伺服器的數據
1. linux伺服器被攻擊如何進行抓包來進行分析
用途
tcpmp簡義:mp the traffic on a network,根據使用者的定義對網路上的數據包進行截獲的包分析工具。
tcpmp可以將網路中傳送的數據包的「頭」完全截獲下來提供分析。它支持針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息。
語法
tcpmp [-adeflnNOpqStvx][-c<數據包數目>][-dd][-ddd][-F<表達文件>][-i<網路界面>]
[-r<數據包文件>][-s<數據包大小>][-tt][-T<數據包類型>][-vv][-w<數據包文件>][輸出數據欄位]
參數說明:http://write.blog.csdn.net/postedit/72898655
-a 嘗試將網路和廣播地址轉換成名稱。
-c<數據包數目> 收到指定的數據包數目後,就停止進行傾倒操作。
-d 把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標准輸出。
-dd 把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標准輸出。
-ddd 把編譯過的數據包編碼轉換成十進制數字的格式,並傾倒到標准輸出。
-e 在每列傾倒資料上顯示連接層級的文件頭。
-f 用數字顯示網際網路地址。
-F<表達文件> 指定內含表達方式的文件。
-i<網路界面> 使用指定的網路截面送出數據包。
-l 使用標准輸出列的緩沖區。
-n 不把主機的網路地址轉換成名字。
-N 不列出域名。
-O 不將數據包編碼最佳化。
-p 不讓網路界面進入混雜模式。
-q 快速輸出,僅列出少數的傳輸協議信息。
-r<數據包文件> 從指定的文件讀取數據包數據。
-s<數據包大小> 設置每個數據包的大小。
-S 用絕對而非相對數值列出TCP關聯數。
-t 在每列傾倒資料上不顯示時間戳記。
-tt 在每列傾倒資料上顯示未經格式化的時間戳記。
-T<數據包類型> 強制將表達方式所指定的數據包轉譯成設置的數據包類型。
-v 詳細顯示指令執行過程。
-vv 更詳細顯示指令執行過程。
-x 用十六進制字碼列出數據包資料。
-w<數據包文件> 把數據包數據寫入指定的文件。
案例
tcpmp -s 0 -i eth1 -w 94ip.cap
註:監聽 ETH1網站 保存文件為94ip.cap
網雲互聯(www.94ip.net/www.94ip.com)是一家從事伺服器安全防護、入侵檢測、伺服器代維等為一體的公司,免費伺服器安全檢測,並有24小時在線運維工程師為您服務。
2. 如何獲取一個程序向伺服器發送的數據
利用抓包程序,首先斷掉網路,關掉所有其他連接網路的程序,例如瀏覽器,QQ啊什麽的。開啟抓包程序,然後連接網路。打開你想要看的程序,然後等待程序發送數據。稍後就看到有數據包發送出來。然後找對應伺服器,找對應的數據包。然後解析數據包。就可以看到了。但是解析數據包比較麻煩,一般數據包都會經過加密。需要解密,才可以看到數據包的明文。
3. 如何使用tcpm進行網路抓包
默認系統里邊沒有安裝有tcpmp的,無法直接使用
這里我們可以使用yum來直接安裝它
yum install -y tcpmp
如果忘記了這個軟體的用法,我們可以使用 tcpmp --help 來查看一下使用方法
一般我們的伺服器里邊只有一個網卡,使用tcpmp可以直接抓取數據包,但是這樣查看太麻煩了,所以都會添加參數來進行獲取的。
例如我截取本機(192.168.31.147)和主機114.114.114.114之間的數據
tcpmp -n -i eth0 host 192.168.31.147 and 114.114.114.114
還有截取全部進入伺服器的數據可以使用以下的格式
tcpmp -n -i eth0 dst 192.168.31.147
或者伺服器有多個IP 可以使用參數
tcpmp -n -i eth0 dst 192.168.31.147 or 192.168.31.157
我們抓取全部進入伺服器的TCP數據包使用以下的格式,大家可以參考下
tcpmp -n -i eth0 dst 192.168.31.147 or 192.168.31.157 and tcp
從本機出去的數據包
tcpmp -n -i eth0 src 192.168.31.147 or 192.168.31.157
tcpmp -n -i eth0 src 192.168.31.147 or 192.168.31.157 and port ! 22 and tcp
或者可以條件可以是or 和 and 配合使用即可篩選出更好的結果。
4. 本地的網頁如何通過ajax發送並獲取伺服器的數據
jQuery 是js的一種框架 。他的實現方式比較簡單。 jQuery的下載你可以網路一下。我簡要說明一下他的使用。
$.post() 方法
$.post() 方法通過 HTTP POST 請求從伺服器上請求數據。
語法:
$.post(URL,data,callback);
必需的 URL 參數規定您希望請求的 URL。
可選的 data 參數規定連同請求發送的數據。
可選的 callback 參數是請求成功後所執行的函數名。
下面的例子使用 $.post() 連同請求一起發送數據:
實例:
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"DonaldDuck",
city:"Duckburg"
},
function(data,status){
alert("Data:"+data+" Status:"+status);
});
});
講解一下原理 :
從你的瀏覽器發送一個非同步請求 post樣式的 到伺服器。
伺服器接收請求。並按請求的內容返回數據。
瀏覽器接收伺服器傳回的結果。
如果你想看這個過程,那就去下載抓包軟體。 抓一下數據包就清楚了。
5. 如何繞開網站防護抓取數據
控制下載頻率大規模集中訪問對伺服器的影響較大,爬蟲可以短時間增大伺服器負載。這里需要注意的是:設定下載等待時間的范圍控制,等待時間過長,不能滿足短時間大規模抓取的要求,等待時間過短則很有可能被拒絕訪問。在之前「從url獲取HTML」的方法里,對於httpGet的配置設置了socket超時和連接connect超時,其實這里的時長不是絕對的,主要取決於目標網站對爬蟲的控制。
另外,在scrapy爬蟲框架里,專有參數可以設置下載等待時間download_delay,這個參數可以設置在setting.py里,也可以設置在spider里。
IP的訪問頻率被限制,一些平台為了防止多次訪問網站,會在某個同一個IP在單元時間內超過一定的次數的時候,將禁止這個IP繼續訪問。對於這個限制IP訪問效率,可以使用代理IP的方法來解決問題比如使用IPIDEA。
採用分布式爬取分布式爬取的也有很多Githubrepo。原理主要是維護一個所有集群機器能夠有效分享的分布式隊列。使用分布式爬取還有另外一個目的:大規模抓取,單台機器的負荷很大,況且速度很慢,多台機器可以設置一個master管理多台slave去同時爬取。
修改User-Agent最常見的就是偽裝瀏覽器,修改User-Agent(用戶代理)。User-Agent是指包含瀏覽器信息、操作系統信息等的一個字元串,也稱之為一種特殊的網路協議。伺服器通過它判斷當前訪問對象是瀏覽器、郵件客戶端還是網路爬蟲。在request.headers里可以查看user-agent,關於怎麼分析數據包、查看其User-Agent等信息,這個在前面的文章里提到過。
具體方法可以把User-Agent的值改為瀏覽器的方式,甚至可以設置一個User-Agent池(list,數組,字典都可以),存放多個「瀏覽器」,每次爬取的時候隨機取一個來設置request的User-Agent,這樣User-Agent會一直在變化,防止被牆。
綜上所述,爬蟲怎麼突破反爬蟲的方法比較多,上文從更換IP、控制下載頻率、分布式爬取、修改User-Agent這四個方面介紹了突破反爬蟲機制的方法,從而實現數據的爬取。
6. 如何讀取雲伺服器數據
雲伺服器和普通的伺服器是一樣,只是說雲伺服器可以通過公網ip直連伺服器和普通伺服器一樣配置,安卓app可以和連接普通伺服器一樣連接雲伺服器的資料庫,ip直接改成雲伺服器的ip地址即可。
7. 用wireshark抓包怎樣抓到ftp(已經建立了服務站點,但就是抓不到ftp)
話說你說的真心不夠清楚,不太清楚你想幹嘛?如果是你想抓自己電腦到ftp伺服器的通信數據,那你就在自己電腦上裝個wireshark,選擇自己當前正在使用的網卡,在自己跟ftp伺服器通信的時候,開始抓包就行了。如果要抓ftp伺服器跟所有客戶端的通信數據,那就在ftp伺服器上裝wireshark,選網卡,抓包就行了。
如果是都抓不到數據包,那可能是如下原因:
1、選取的網卡不是當前活動網卡,或者說不是ftp數據流走的那個網卡。
2、當前與ftp伺服器沒有通信。
8. 如何抓包和GET數據包與POST數據包區別
首先說一下我所理解的數據包。
我所理解的數據包就是用戶和網站之間的一個交流,你把數據包傳遞到伺服器,伺服器再返回給你一個結果,這樣你和網站就進行了一次交流。
而我們在網站里的操作,也是發送數據包請求來完成的。
那麼我們如何去抓取我們所發送的數據包呢。
這里推薦一下火狐瀏覽器里的firebug插件。
首先我們網路搜索火狐瀏覽器,然後下載下來。
接著到菜單----附加組件----搜索firebug
然後安裝這個甲殼蟲圖片的就可以了。
安裝好了之後呢,我們看到瀏覽器右上角有一個灰色的甲殼蟲圖標,我們點擊它,就成為亮色的了。
然後我們選擇 網路---啟動
這樣,這個firebug插件就已經開始對你的火狐瀏覽器抓包了。
這時候我們最好把「保持」給勾選上,因為有時候網頁會跳轉,那麼跳轉之前的數據包就會自動清空了,如果你保持的話,跳轉之前的數據包也可以找到。
這里為什麼推薦火狐瀏覽器里的firebug插件呢,因為firebug插件的抓包的時候,如果是緩存在電腦目錄里的數據,他會顯示灰色,這樣我們分析數據包的時候直接跳過這些灰色的數據包就可以了。 而且火狐瀏覽器的插件也比較多。
我們現在提交數據包的方式常見的有兩類,一類是GET方式,一類是POST方式。 也有其他的方式,不過很少很少見到,主流還是GET和POST方式。
GET方式的數據包就跟我們平常訪問網頁一樣,當我們打開http://www..com/就相當於提交了一個GET數據包。
那麼以網路為例子。
我們抓取打開網路時候的數據包可以看到有很多一條一條的數據包,一般來說第一條就是我們訪問的地址。我們把第一條展開看一下。
把請求頭復制出來就是這樣
GET / HTTP/1.1
Host: www..com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: BAIDUID=:FG=1; mv_in_vl=0; BDSVRTM=20; BDRCVFR=mk3SLVN4HKm; BDRCVFR=aeXf-1x8UdYcs
Connection: keep-alive
Cache-Control: max-age=0
最開始有一個GET,這個就是數據包的提交方式了,可以是GET或者POST。 後面是HTTP/1.1
而Host就是伺服器名,可以是一個域名也可以是一個IP地址。
User-Agent,瀏覽器標識什麼的,可以讓伺服器識別你的瀏覽器版本、語言、插件等等。
Accept,Accept-Language,Accept-Encoding,這里我就不多說了,有興趣的朋友可以看看這個:http://jingyan..com/article/375c8e19770f0e25f2a22900.html
下面是Cookie,Connection和Cache-Control.
那麼一個GET方式的數據包就是這樣構成的。
然後我們看到數據包還有一個響應
這里是我們訪問了這個數據包後,伺服器返回給我們的結果。
我們打開後看到是一對亂碼
這個是很正常的,伺服器只會給你返回一串數據,然後瀏覽器會根據數據來進行整理,然後展現給你,也就是你看到的網路頁面。
那麼到這里,就是一個完整的GET方式的數據包。
而POST數據包和GET數據包的本質是沒有任何差別的,構成也很相似。
POST數據包只是為了來完成GET數據包沒有辦法完成的功能。
因為有時候我們要登錄賬號,登錄賬號要發送一個數據包給伺服器,那如果是GET方式的話,登錄的賬號密碼就會在瀏覽器地址欄里顯示出來,這樣就不太安全。
如果是POST數據包的話,就不會顯示出來。
並且GET方式的數據包能查詢的長度是有限的,好像最長是255位元組,也可能會更多,反正不會超過某個限度,如果超過了這個限度的話,他會自動省去後面的位元組。那麼我們傳遞到伺服器的時候,數據就損失了很多,伺服器也會不知道我們是幹嘛的。
而POST數據包就會沒有這個問題。
下面抓一個網路的登錄看一下。
復制一下他的請求頭信息
POST /v2/api/?login HTTP/1.1
Host: passport..com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://www..com/
Cookie: BAIDUID=:FG=1; HOSUPPORT=1
Connection: keep-alive
那麼我們可以看到,POST的請求頭信息和GET的請求頭是很相似的。只不過多了個POST數據。
而這里我們可以看到,提交的數據是非常非常長的,如果用GET方式的話就可能不能完全提交到伺服器。而且就算能提交,那麼瀏覽器地址欄顯示這么長一串內容,對用戶的體驗也是不太好的。反正我是看到地址欄滿滿的很長一段,就會不舒服。
言歸正傳,這里就是POST方式提交的數據。
然後其他的就跟GET方式差不多了, 頭信息、返回響應什麼的。
最後總結一下:
1、抓包用火狐瀏覽器的firebug插件,抓包的時候要記得勾選「保持」。
2、POST和GET方式的區別就在於長度問題,GET方式的長度是有限的,POST沒有限制。
9. 我是網路方面的新手,希望請教各位一個問題:如何抓取機內的數據包 就是說我的資料庫伺服器在自己的機器
一般來說抓包都是用軟體,抓包軟體是抓去進,出設備的數據包。所以如果數據沒有流動那就抓不到。不知道你想要查看些什麼內容,如果你想看數據伺服器與其他設備都傳遞些什麼數據包那就得把數據伺服器和另一個設備連在一起,讓他們處於信息交互的狀態,這樣才能抓包。
比較有名的抓包工具有sniffer,etherpeak,wireshake(可能拼寫有誤,網路會為你糾正^_^)
而個人pc抓包一般都是抓取網卡上的數據,一般抓包軟體會讓你選擇抓哪個網卡的數據,那就選你連接伺服器和另一設備的那張網卡就行了。
抓取的包是所有通過網卡的數據,所以准確的篩選就要看你自己的知識夠不夠了。
10. 如何用wireshark軟體單獨捕獲http數據包
方法/步驟
運行wireshark軟體,進入主界面。
在左側網卡區域,點擊選擇網卡。目前這里是無線網卡,就選擇無線網路連接。
點擊start,進入捕包界面。
在filter(過濾器)的方框中,輸入http。
點擊右側的apply(應用)。此時,進入捕包狀態。若在瀏覽器中瀏覽網頁,就能捕獲其中的http數據包。
最後,可以通過分析單個的數據包,進行解碼分析,這需要一些專業方面的知識了。希望對您有幫助。