<![CDATA[Latest posts for the topic "Học HTTP qua các công cụ sniffer"]]> /hvaonline/posts/list/31.html JForum - http://www.jforum.net Học HTTP qua các công cụ sniffer (Tham khảo từ cuốn OReilly-HTTPTheDefinitiveGuide trên thư viện HVA) Tớ sẽ cố gắng đi qua các phần chính của cuốn sách này với việc minh hoạ bằng cách sniff các packets. (Cứ lấy mục tiêu là HVA cho "nhanh gọn"). Cấu trúc của HTTP messages gồm 3 phần: Start line: tất cả các HTTP messages đều bắt đầu với start line. Request mess nói những gì cần làm, reponse mess “nói” những gì đã xảy ra. Version number chỉ ra phiên bản cao nhất của HTTP mà ứng dụng hỗ trợ. Header fields: name:value, kết thúc bằng blank line. Có các loại header: General, request, response, entity, extension. Body: request and response bodies, chứa đựng bất cứ loại dữ liệu nào. Entity body chính là payload của HTTP mess, chúng là những gì mà HTTP phải “chở” đi. Request messages là các HTTP messages gửi từ client đến web server, ví dụ:
GET /hvaonline/forums/stats.html HTTP/1.1\r\n ----------------------------------------------------------------------------------------------------------------- Host: www.hvaonline.net\r\n User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080208 Fedora/2.0.0.12-1.fc8 Firefox/2.0.0.12\r\n Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n Keep-Alive: 300\r\n Connection: keep-alive\r\n Referer: /hvaonline/recentTopics/list.html\r\n Cookie: HIM_on_off=1; HIM_method=0; HIM_ckspell=1; HIM_daucu=1; JSESSIONID=7862580A89A05A9C083A6330A504C227; jforumAutoLogin=null; jforumUserId=128502; jforumUserHash=null; ComboHash=169082214d5fb9860dcca548030de22e\r\n \r\n -----------------------------------------------------------------------------------------------------------------  
Response messages là các messages gửi từ web server đến client, ví dụ:
HTTP/1.1 200 OK\r\n ----------------------------------------------------------------------------------------------------------------- Date: Tue, 04 Mar 2008 03:10:53 GMT\r\n Server: Epecha\r\n Cache-Control: max-age=300\r\n Expires: Tue, 04 Mar 2008 03:15:53 GMT\r\n Vary: Accept-Encoding,User-Agent\r\n Content-Encoding: gzip\r\n Content-Length: 6246 Keep-Alive: timeout=4, max=250\r\n Connection: Keep-Alive\r\n Content-Type: text/html;charset=UTF-8\r\n \r\n Content-encoded entity body (gzip): 6246 bytes -> 45543 bytes ----------------------------------------------------------------------------------------------------------------- Line-based text data: text/html \r\n <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> \r\n \r\n <html>\r\n <head>\r\n <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">\r\n <meta http-equiv="Pragma" content="no-cache">\r\n <meta http-equiv="Expires" content="-1">\r\n <meta name="description" content="HVA discussion board">\r\n <meta name="keywords" content=", jforum, jforum java, jforum forum, forum java, java jforum, java forum, forum, rafael steil, bulletin board, java bb, javabb, hva, hvaonline, hvazone, hvaforum">\r\n <meta name="resource-type" content="document">\r\n <meta name="distribution" content="global">\r\n <meta name="robots" content="index,follow">\r\n <meta name="rating" content="general">\r\n <style type="text/css">\r\n <!-- \r\n @import url( "/hvaonline/templates/viet/styles/style.css");\r\n -->\r\n </style>\r\n <style type="text/css">\r\n <!--\r\n @import url("/hvaonline/templates/viet/styles/vi_VN.css");\r\n -->\r\n </style>\r\n <title> - .:: HVAOnline ::.</title>\r\n \r\n </head>\r\n <body class="vi_VN">\r\n \r\n <!--\r\n Original theme from phpBB http://www.phpbb.com) subSilver\r\n Created by subBlue design\r\n http://www.subBlue.com\r\n Modifications by JForum Team \r\n Extended and customised by HVA Team\r\n Added more features and Black Silver theme designed by HVA\r\n ...  
Hãy xem về một response message khác:
HTTP/1.1 304 Not Modified\r\n ----------------------------------------------------------- Date: Tue, 04 Mar 2008 03:10:59 GMT\r\n Server: Epecha\r\n Connection: Keep-Alive\r\n Keep-Alive: timeout=4, max=250\r\n Expires: Tue, 04 Mar 2008 03:15:59 GMT\r\n Cache-Control: max-age=300\r\n \r\n -----------------------------------------------------------  
(Giữa các phần của một HTTP message được ngăn cách bằng một đường kẻ ngang) Có điểm gì khác giữa 2 response message: Bạn để ý status code của cái thứ nhất là 200 OK - tức là "success", bất kỳ dữ liệu yêu cầu nào đều nằm trong "body" của response message. Còn status code của response thứ hai là 304 Not Modified - chỉ ra rằng resource trên server không thay đổi gần đây. Responses với "status code" này không chứa đựng một entity body. Phần tiếp theo, chúng ta sẽ tìm hiểu sâu và các thành phần trong một HTTP message.]]>
/hvaonline/posts/list/19824.html#117903 /hvaonline/posts/list/19824.html#117903 GMT
Re: Học HTTP qua các công cụ sniffer HTTP/1.1 200 OK\r\n ----------------------------------------------------------------------------------------------------------------- Date: Tue, 04 Mar 2008 03:10:53 GMT\r\n Server: Epecha\r\n Cache-Control: max-age=300\r\n Expires: Tue, 04 Mar 2008 03:15:53 GMT\r\n Vary: Accept-Encoding,User-Agent\r\n Content-Encoding: gzip\r\n Content-Length: 6246 Keep-Alive: timeout=4, max=250\r\n Connection: Keep-Alive\r\n Content-Type: text/html;charset=UTF-8\r\n \r\n Content-encoded entity body (gzip): 6246 bytes -> 45543 bytes ....  Dòng đc đánh dấu không có trong response, mà do Ethereal (wireshark) diễn giải cho mình hiểu, thực chất đoạn body của response đc nén kiểu gzip chứ không phải plain text như các bạn thấy. có vài lời vậy thôi, quanta tiếp nhé :D]]> /hvaonline/posts/list/19824.html#117933 /hvaonline/posts/list/19824.html#117933 GMT Re: Học HTTP qua các công cụ sniffer /hvaonline/posts/list/19824.html#117948 /hvaonline/posts/list/19824.html#117948 GMT Re: Học HTTP qua các công cụ sniffer

father_nghia_den wrote:
Hi quanta, Em có một số thắc mắc Trong packet request bạn bắt được bằng wireshark em thấy có dòng User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080208 Fedora/2.0.0.12-1.fc8 Firefox/2.0.0.12\r\n Vậy dòng này có ý nghĩa gì?  
Dòng User-Agent xác định tên và một vài dòng miêu tả về ứng dụng được sử dụng ở phía client. Đôi khi nó chứa một vài thông tin về máy mà client đang chạy (Như trên bạn nhìn thấy là tớ dùng Fedora kiến trúc i686)

father_nghia_den wrote:
Sao em để ý lúc nào cũng là Mozilla mặc dù client dùng IE để request tới webserver? 
Tớ vừa phải cài lại IE trên Fedora để test trường hợp của bạn, output đây:
GET / HTTP/1.0\r\n Accept: */*\r\n Accept-Language: en-us;q=0.5\r\n User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)\r\n Host: hvaonline.net\r\n Connection: Keep-Alive\r\n \r\n  
còn đây là output cho Konqueror (có chức năng như một web browser);
GET / HTTP/1.1\r\n User-Agent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.8 (like Gecko)\r\n Accept: text/html, image/jpeg, image/png, text/*, image/*, */*\r\n Accept-Encoding: x-gzip, x-deflate, gzip, deflate\r\n Accept-Charset: utf-8, utf-8;q=0.5, *;q=0.5\r\n Accept-Language: en\r\n Host: www.hvaonline.net\r\n Connection: Keep-Alive\r\n \r\n  
Câu hỏi này của bạn khá hay. Tớ google và tìm được câu trả lời thế này:
Note that most browsers today identify themselves using the "Mozilla" — an early name for the Navigator browser — product name, even if they are not derived from the original Netscape Navigator browser. Notice in the listing above that even Microsoft's Internet Explorer identifies itself using the "Mozilla" product name to indicate that it is roughly compatible to a specific version of Navigator or its successors. Today, "Mozilla" also refers to a newer Web browser available from the Mozilla Foundation at www.mozilla.org.  
(Trích từ: http://www.ericgiguere.com/articles/masquerading-your-browser.html)]]>
/hvaonline/posts/list/19824.html#117963 /hvaonline/posts/list/19824.html#117963 GMT
Re: Học HTTP qua các công cụ sniffer Golden Autumn đã upload lên tại http://rapidshare.com/files/59824751/Syngress.Wireshark.and.Ethereal.Network.Protocol.Analyzer.Toolkit.Nov.2006.pdf Để bắt đầu, bạn chạy Wireshark với root account, màn hình xuất hiện:
Liệt kê các capture interfaces:
Danh sách các interfaces xuất hiện bao gồm: Ethernet, loopback, virtual, ...
Chọn Options trên dòng eth0:
Chọn tiếp Capture filters:
Chọn TCP HTTP port (80), nhấp OK -> nhấp Start để Wireshark tiến hành capture:
Nhấp Stop khi muốn dừng. Lọc những packets có giao thức là HTTP bằng cách:
Chọn HTTP và nhấp OK:
Kết quả xuất hiện như sau:
Chọn một packet bất kỳ, và expand dòng Hypertext Transfer Protocol để xem nội dung HTTP message:
]]>
/hvaonline/posts/list/19824.html#119045 /hvaonline/posts/list/19824.html#119045 GMT
Re: Học HTTP qua các công cụ sniffer /hvaonline/posts/list/19824.html#119119 /hvaonline/posts/list/19824.html#119119 GMT Re: Học HTTP qua các công cụ sniffer HyperText Transfer Protocol(HTTP) là giao thức lớp Application nó cung cấp một giao thức cho việc truy vấn HyperText Markup language(HTML) và các dữ liệu khác của web Site. -Có 3 phiên bản HTTP. + HTTP/0.9: Là phiên bản đầu tiên đơn giản chỉ hỗ trợ tùy chọn đễ nhận được một trang Web. + HTTP/1.0: Phiên bản này được bỗ sung bởi nhiều trường dữ liệu gọi là các tiêu đề (header) vào thông số kỹ thuật. + HTTP/1.1: Là phiên bản cải tiến của HTTP/1.0, ưu điểm của HTTP/1.1 là có các kết nối ỗn định, tạo ống dẫn và kiễm soát cache. - Các trình duyệt ngày nay cung cấp tính năng tương thích ngược giữa 2 phiên bản HTTP trên   :) ]]> /hvaonline/posts/list/19824.html#119484 /hvaonline/posts/list/19824.html#119484 GMT Re: Học HTTP qua các công cụ sniffer /hvaonline/posts/list/19824.html#141284 /hvaonline/posts/list/19824.html#141284 GMT Re: Học HTTP qua các công cụ sniffer

KVD wrote:
Em có một vài câu hỏi về sniffer... Mong các anh giải thích! + Với một sniffer, ta có thể capture được các HTTP Request dạng POST và GET gửi đến Server hay không? + Nêu được thì với nó ta có thể viết những ứng dụng web tự động sử dụng cURL của PHP là hiển nhiên phải không? 
1 - Vẫn capture dc , nói chung cái nào đi ra , đi vào NIC là capture dc hết 2 - Mình đã tửng thử viết 1 ứng dụng nhỏ tự động sử dụng cURL cung cấp các header đến server Thân]]>
/hvaonline/posts/list/19824.html#141285 /hvaonline/posts/list/19824.html#141285 GMT
Học HTTP qua các công cụ sniffer Server: Epecha\r\n   đây là webserver gì vậy các anh?]]> /hvaonline/posts/list/19824.html#190939 /hvaonline/posts/list/19824.html#190939 GMT Học HTTP qua các công cụ sniffer

intellirookie wrote:
Server: Epecha\r\n  
đây là webserver gì vậy các anh? 
À, web server... http://www.google.com.vn/#hl=vi&source=hp&q=%22Epecha%22+%2B+%22conmale%22+site%3Ahvaonline.net&btnG=T%C3%ACm+v%E1%BB%9Bi+Google&meta=&aq=f&fp=bf2991ab78f3c67c ấy mà.]]>
/hvaonline/posts/list/19824.html#190942 /hvaonline/posts/list/19824.html#190942 GMT
Học HTTP qua các công cụ sniffer /hvaonline/posts/list/30943.html]]> /hvaonline/posts/list/19824.html#190953 /hvaonline/posts/list/19824.html#190953 GMT