Example 2

HTTP Requests

Example 2

Top  Previous  Next

Đăng nhập trang http://www.vn-zoom.com

và lấy source Html sau khi đăng nhập thành công

 

 

* Nếu chưa có tài khoản thì tạo tài khoản mới hoặc dùng tài khoản sau để làm thử:

user: autoit_httprequest, password: 123456

 

 

Ta làm theo từng bước như sau:

 

1/ Xem Live HTTP Headers các request cần làm

 

 

·Điền thông tin đăng nhập vào (username, password) nhưng khoan bấm nút Đăng Nhập.

 

·Nếu chưa bật Live HTTP Headers thì bật nó lên. Nếu bật rồi thì bấm Clear để xoá hết các request cũ không liên quan.

 

·Bây giờ mới bấm nút Đăng nhập và Live HTTP Headers sẽ hiển thị 1 đống thông tin. Vì là đăng nhập nên tìm trong Live HTTP Headers chỗ nào có POST và có tên host vn-zoom.com với login, thì thấy:

 

http://www.vn-zoom.com/login.php?do=login

 

POST /login.php?do=login HTTP/1.1

Host: www.vn-zoom.com

User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0 Cyberfox/52.2.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US

Accept-Encoding: gzip, deflate

Referer: http://www.vn-zoom.com/

Cookie: __utma=86548831.699110374.1504761919.1504761919.1504761919.1; __utmb=86548831.1.10.1504761919

DNT: 1

Connection: keep-alive

Upgrade-Insecure-Requests: 1

Content-Type: application/x-www-form-urlencoded

Content-Length: 210

  vb_login_username=autoit_httprequest& vb_login_password=& cookieuser=1&s=& securitytoken=guest&do=login& vb_login_md5password=1ade52bfb3f7792a0f18febf3dccb2bb& vb_login_md5password_utf=1ade52bfb3f7792a0f18febf3dccb2bb

→ DataToSend

 

HTTP/1.1 200 OK

Server: nginx

Date: Thu, 07 Sep 2017 05:22:32 GMT

Content-Type: text/html; charset=utf-8

Vary: Accept-Encoding

Set-Cookie: bb_lastactivity=0; expires=Fri, 07-Sep-2018 05:22:31 GMT; path=/; domain=.vn-zoom.com

Set-Cookie: bb_userid=1442867; expires=Fri, 07-Sep-2018 05:22:31 GMT; path=/; domain=.vn-zoom.com; HttpOnly

Set-Cookie: bb_password=4350e784c623f3c1a3843aa23fd426ed; expires=Fri, 07-Sep-2018 05:22:31 GMT; path=/; domain=.vn-zoom.com; HttpOnly

Set-Cookie: bb_sessionhash=039f904f444e1101877a8554666edb69; path=/; domain=.vn-zoom.com; HttpOnly

Set-Cookie: vbseo_loggedin=yes; expires=Thu, 07-Sep-2017 06:22:32 GMT; path=/

Content-Encoding: gzip

 

 

2/ Phân tích Headers

 

Các Header như Accept, Accept-Language, Accept-Encoding, Connection, Content-Length, User-Agent, DNT: 1 ta không cần để ý đến chúng vì UDF đã add sẵn hết rồi. Xem thêm chi tiết tại mục $sAdditional_Headers

 

 

3/ Phân tích Referer

 

Hình trên có Referer nhưng không điền vào tham số $sReferer cũng được, chừng nào request thất bại mới điền vào để thử.

 

 

4/ Phân tích Cookie

 

Những cookie tạp nham thường có dạng __abcxyz, ___abcxyz ta không cần để ý đến chúng.

 

 

5/ Phân tích Data cần gửi đi

 

DataToSend thường nằm thụt lùi qua phải hơn so với các dòng khác, nó là:

vb_login_username=autoit_httprequest& vb_login_password=& cookieuser=1&s=& securitytoken=guest& do=login& vb_login_md5password=1ade52bfb3f7792a0f18febf3dccb2bb& vb_login_md5password_utf=1ade52bfb3f7792a0f18febf3dccb2bb

 

·Đoạn vb_login_md5password=1ade52bfb3f7792a0f18febf3dccb2bb đọc tên của Key ta có thể hiểu ngay ý nghĩa của nó là Password đã bị mã hoá MD5 → Sử dụng hàm _GetMD5 để mã hoá mật khẩu.

 

·Ta có thể đặt usernamevb_login_md5password, vb_login_md5password_utf là biến để dễ tuỳ biến hơn: $sDataToSend = vb_login_username=' & $name & ... & '&vb_login_md5password=' & $pass & .....

 

·Vì chuỗi gửi đi $sDataToSend phải là chuỗi không dấu, nhưng sẽ có trường hợp đặt tên cho tài khoản có chứa ký tự có dấu nên để chắc ăn, ta dùng hàm _URIEncode($name) để biến chuỗi có dấu thành chuỗi không dấu theo chuẩn URL.

 

 

6/ Phân tích ngoài luồng

 

Thông thường sau khi đăng nhập thành công thì một trang web sẽ tự động redirect về trang chủ đã có đầy đủ thông tin tài khoản nhưng trang vn-zoom thì nó sẽ qua một bước trung gian nữa như hình dưới:

 

Đang chuyển tới

Cảm ơn, autoit_httprequest đã đăng nhập thành công

Button

 

Bước này đơn giản chỉ cần request đến trang chủ là xong (Sau khi đã request đăng nhập thành công).

 

 

7/ Hoàn thiện code

 

#include <_HttpRequest.au3>

$name = 'autoit_httprequest'

$pass = '123456'

$MD5_Pass = _GetMD5($pass) ; Mã hoá MD5 mật khẩu

 

$rq1 = _HttpRequest(0, 'http://www.vn-zoom.com/login.php?do=login', 'vb_login_username=' & _URIEncode($name) &'&vb_login_password=&cookieuser=1' & '&s=&securitytoken=guest&do=login&vb_login_md5password=' & $MD5_Pass & '&vb_login_md5password_utf=' & $MD5_Pass)

; → Sau request trên thì _HttpRequest sẽ lưu Cookies đăng nhập vào cache (Nếu thành công).

; → Tham số $iReturn của _HttpRequest điền số mấy cũng được bởi cái ta cần là Cookies đăng nhập đã sẵn sàng có trong cache khi request thành công. Vì vậy ta điền 0 để tăng tốc độ request (do không tốn thêm thời gian để lấy bất cứ giá trị trả về nào)

 

$rq2 = _HttpRequest(2, 'http://www.vn-zoom.com') ; Request đến trang chủ như Phân tích ngoài luồng ở trên

_HttpRequest_Test($rq2)