Pages

8/15/2011

Short Blog: How to Capture HTTP POST packets in Wireshark

Wireshark มี filter อยู่สองตัว คือ Capture Filter และ Display Filter มีความต่างกันคือ

  1. Capture Filter: เอาไว้กรอง packet ที่ดักได้ผ่านทาง Network Interface เลย  คือถ้าดักจับมาแล้วไม่ตรงตามเงื่อนไขที่ตั้งไว้ ก็คือจะทิ้ง packet นั้นไป ไม่บันทึกข้อมูลลงในระบบ wireshark  เนื่องจากที่ capture filter นี้จะต้องอ่านทุกๆ packets ที่เครื่องสามารถจับได้  ดังนั้นกระบวนการกรองจึงต้องทำด้วยความรวดเร็วมาก มิฉะนั้นถ้าช้า จะทำให้ packet บางตัวหลุดการจับไปได้  จึงทำให้ Capture Filter มีความสามารถจำกัด  คือกรองได้เฉพาะอะไรที่ง่ายๆเท่านั้น
  2. Display Filter: เอาไว้สำหรับ กรอง packets ที่ได้มาจากการดักจับหลังจากผ่าน Capture Filter มาแล้ว เพื่อมาแสดงผลเท่านั้น  โดยหลังจากที่ Capture Filter กรองpackets ออกมาจนทำเป็นลิสต์ได้แล้ว  Display Filter ก็จะไปกรองลิสต์นั้นอีกทีเพื่อเลือกเฉพาะสิ่งที่ผู้ใช้สนใจ  และจุดต่างอีกจุดที่สำคัญของ Display Filter คือ  การกรองตรงนี้จะไม่ทำการลบ packet ที่ไม่ใช่ ทิ้งไป  นี่จะเป็นการกรองเพื่อแสดงผลเท่านั้น  และเมื่อยกเลิกDisplay Filter  ก็จะได้ลิสต์ของpacketเดิมกลับมา
คราวนี้เนื่องจากว่า Capture Filter ไม่สามารถระบุเลยได้ว่าจะเอาเฉพาะ POST request ของ HTTP ได้  ดังนั้น Capture Filter เลยจะเหลือแค่  
host 1.2.3.4 and port http

คือจะดักเอาเฉพาะ IP address ต้นทางหรือปลายทางที่เป็น 1.2.3.4 เท่านั้น และเอาเฉพาะ packet ที่เป็น HTTP เท่านั้น

หลังจากใช้ Capture Filter แบบนี้เราจะได้ packet มากมายอยู่... แต่สิ่งที่เราต้องการคือช่องที่ใช้ login ซึ่งปกติจะเขียนด้วย Form และใช้ POST method เพื่อที่จะป้องกันไม่ให้ URL มี password ของผู้ใช้แสดงให้เห็นอยู่เหมือน GET method 

ตัวอย่างของ html post form จะเป็นแบบ...
<form action="login.php" method="POST">
  <input type="text" name="username"/><br>
  <input type="password" name="password"/>
</form>


ในเมื่อ Capture Filter ไม่สามารถ Filter ให้เราได้ถึง HTTP request method แบบ POST แบบนี้ได้  เราจึงต้องใช้ระบบ Display Filter เข้ามาช่วย

โดยถ้าเราเขียน Display Filter ว่า...
http.request.method=="POST"
หรือ
ip.dst==1.2.3.4 && http.request.method=="POST"

ก็จะเป็นการระบุชัดเจนว่า  ให้แสดงผลออกมาเฉพาะ packet ที่วิ่งไปหา(destination) 1.2.3.4
และใช้ HTTP request method แบบ POST


สังเกตที่ Title bar (สีดำ)  จะเป็น capture filter
และตรงสีเขียวๆ ที่เขียนว่า Filter: ด้านหน้า จะเป็น display filter

No comments:

Post a Comment