Điền username và pass. Khoan bấm vào 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. Ta tìm trong Live HTTP Headers đoạn request liên quan đến đăng nhập sau:
https://www.fshare.vn/login
POST /login HTTP/1.1
Host: www.fshare.vn
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:51.0) Gecko/20100101 Firefox/51.0 Cyberfox/51.0
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
→ Header còn lại sẽ nạp vào $sAdditional_Headers là:Upgrade-Insecure-Requests: 1
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. Còn lại các Cookie như:session_id, proxy_s_sv, apluuid ta tạm thời không suy nghĩ đến chúng, thử request trước, nếu thất bại thì quay lại thử nạp các Cookie này.
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à:
Ta có thể đặt 2 chỗ [email protected] và 123456 là biến để dễ tuỳ biến hơn: $sDataToSend = ... &'LoginForm%5Bemail%5D=' &$mail&'LoginForm%5Bpassword%5D=' &$pass& ....
·
Email đã bị encode (@ → %40) nên ta dùng hàm _URIEncode để chuyển: $sDataToSend = ... & 'LoginForm%5Bemail%5D=' &_URIEncode($mail) &'LoginForm%5Bpassword%5D=' &$pass& ....
·
fs_csrf ta tìm ở đâu ? Thông thường để tìm một giá trị lạ ta sẽ tìm giá trị đó trên Live HTTP Headers trước. Nếu tìm không thấy ta sẽ làm 1 request lấy source từ địa chỉ header Referer. Nhìn hình ở trên, địa chỉ Referer đó là https://www.fshare.vn/ → Ta request địa chỉ này và lưu source request được vào Clipboard:
Paste source đã lưu vào Notepad hoặc trang SciTE mới và search thử (Ctrl+F3) giá trị lạ đó (ở ví dụ này là fs_csrf) có nằm trong source không, nếu có thì dùng StringRegExp để tách lấy nó ra. Ta tìm thử thì quả nhiên là thấy:
Sau khi request ta thấy không cần các Cookies như:session_id, proxy_s_sv, apluuid... thì vẫn request thành công → Không cần làm thêm bước tìm các Cookie này.
7/ Hoàn thiện code
Kết hợp code Đăng nhập ở trên và code lấy link tải ở Ví dụ 4ta được code hoàn chỉnh sau: