Yêu cầu HTTP (HTTP request)
Tất cả các thông điệp HHTP (yêu cầu và trả lời) chứa một hay nhiều headers, mỗi cái trên một dòng riêng rẽ, được theo sau bởi một dòng trắng bắt buộc và phần thân thông điệp tùy chọn. Một yêu cầu HTTP điển hình như sau:
GET /auth/488/YourDetails.ashx?uid=129 HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, */*
Referer: https://mdsec.net/auth/488/Home.ashx
Accept-Language: en-GB
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;
Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR
3.0.30729; .NET4.0C; InfoPath.3; .NET4.0E; FDM; .NET CLR 1.1.4322)
Accept-Encoding: gzip, deflate
Host: mdsec.net
Connection: Keep-Alive
Cookie: SessionId=5B70C71F3FD4968935CDB6682E545476
– GET /auth/488/YourDetails.ashx?uid=129 HTTP/1.1
Dòng đầu tiên của mọi yêu cầu HTTP chứa ba thành phần, được chia tách bởi khoảng trắng.
+ Một động từ chỉ phương pháp HTTP (HTTP method). Phương pháp được sử dụng phổ biến nhất là GET, chức năng
của nó là tải tài nguyên từ máy chủ web. Yêu cầu GET không có phần thân thông điệp, vì vậy không có dữ liệu
nào thêm đi theo dòng trắng sau các headers của thông điệp.
+ URL được yêu cầu. URL điển hình có chức năng như là tên cho tài nguyên được yêu cầu, cùng với một chuỗi
truy vấn tùy chọn chứa các tham số cái mà máy khách truyền tới tài nguyên đó. Chuỗi truy vấn được chỉ bởi
dấu ? trong URL. Ví dụ chứa một tham số đơn với tên uid và giá trị 129.
+ Đời của HTTP đang sử dụng.Các đời HTTP phổ biến trong internet là 1.0 và 1.1, và hầu hết các trình duyệt
dùng đời 1.1 làm mặc định. Có một vài sự khác nhau giữa các thông số kĩ thuật của hai đời này. Tuy nhiên,
sự khác biệt duy nhất mà bạn có thể gặp khi tấn công ứng dụng web là trong đời 1.1 header Host của yêu cầu là
bắt buộc.
Sau đây là các điểm khác quan tâm trong yêu cầu mẫu:
– Referer: https://mdsec.net/auth/488/Home.ashx
Header referer được sử dụng để chỉ URL từ đó yêu cầu được khởi xướng (ví dụ, vì người dùng click lên một
link trên trang đó).
– User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;
Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR
3.0.30729; .NET4.0C; InfoPath.3; .NET4.0E; FDM; .NET CLR 1.1.4322)
User-agent: header được sử dụng để cung cấp thông tin về trình duyệt hoặc các phần mềm khác của máy khách
cái tạo ra yêu cầu. Chú ý rằng hầu hết trình duyệt bao gồm tiền tố Mozilla vì lí do lịch sử. Đây là chuỗi
User-agent được sử dụng bởi trình duyệt Netscape phổ biến ban đầu, và các trình duyệt khác muốn khẳng định
với các website được yêu cầu rằng chúng phù hợp với tiêu chuẩn đó.
– Host: mdsec.net
Host header: header chỉ tên host cái xuất hiện trong URL đầy đủ đang được truy cập. Cái này là cần thiết
, khi có nhiều websites được lưu trên cùng một máy chủ, vì URL được gửi trong dòng đầu tiên của yêu cầu
HTTP thường không chứa tên host.
– Cookie: SessionId=5B70C71F3FD4968935CDB6682E545476
Cookie header được sử dụng để đệ trình các tham số thêm mà máy chủ cung cấp cho máy khách.