Bắt HTTP Request trên máy ảo iOS

Bắt HTTP Request trên máy ảo iOS

Hoàn cảnh

Mấy nay đang đánh vật với cái app gửi rồi nhận HTTP request các kiểu. Phải là đang xài Windows thì còn đỡ, có Fiddler thần thánh thì đừng hỏi (không có Fiddler chắc không tồn tại một số không nhỏ các app trên WP Store :3 ). Nhưng mà trên Mac thì không có sẵn vậy. Mặc dù source .NET core đã public nhưng mà chắc vẫn phải chờ một thời gian nữa trước khi các app .NET được port qua cho Mac. Hàng free như Wireshark thì không đủ trình xài, hàng chất như Charles thì không có tiền xài. Thành ra bữa giờ đều phải xài dev tool của trình duyệt, ngồi bắt request rồi code giả lập trở lại.

Rắc rối xảy ra khi vừa nãy gửi một cái GET request từ code, đặt breakpoint trong callback nhưng hoàn toàn không thấy gọi về. Cay! Quyết tâm đào lại Google một lần nữa, lần này thì đào được cái Burp Suite này. Thằng này bản full của nó cũng một đống tiền, hên cái là bản free vẫn đáp ứng đủ yêu cầu. Thế là kéo về chiến.

Cài

Thằng này viết bằng Java nên các bạn chịu khó cài JRE các kiểu trước khi chạy. Chạy được rồi thì vẫn chưa xài được đâu, phải vào config cho nó tí. Trong giao diện chính của nó, các bạn đổi qua tab Proxy (và chúng ta cũng chỉ chủ yếu là việc ở tab này thôi), trong tab Options, các bạn chọn item mặc định có sẵn trong khung Proxy Listeners rồi click Edit. Cửa sổ khác hiện ra, các bạn tick vào tùy chọn All interfaces. Thế là xong, cứ ok hết các kiểu, nó có hiện thông báo gì cũng mặc kệ nó.

Tiếp theo là config cho máy. Các bạn vào System References > Network > chọn connection nào mà bạn muốn theo dõi rồi nhấn Advanced. Cửa sổ hiện ra, các bạn đổi qua tab Proxies rồi enable cái Web Proxy (HTTP) lên, ở phần Web Proxy Server, các bạn tiến hành set Server như hình, port thì phải giống với cái port mới config khi nãy bên thằng Burp Suite. Nếu các bạn muốn bắt thêm HTTPS thì enable luôn thằng ở dưới rồi set thông số tương tự. (Nhưng mà tí nữa xài xong thì nhớ disable tụi này đi :v)

Giờ quay lại thằng Burp Suite, thử reload vài trang bằng trình duyệt để test, thằng Burp Suite nó sẽ bắt hết HTTP request rồi nhét vào tab HTTP history. Đến đây muốn xài với máy ảo thì các bạn tiến hành restart máy ảo (nếu đang chạy) hoặc chạy nó rồi xài. Lưu ý là giữa các lần thay đổi proxy cho máy thì chúng ta phải restart máy ảo thì thay đổi mới có tác dụng.

Nếu

Câu hỏi là: máy ảo chạy ngon rồi, giờ giả dụ deploy ra chạy trên máy thật rồi muốn bắt thì phải làm sao? Cái này cũng không khó, trên iOS device các bạn connect vào cùng một mạng với Mac, sau đó set Manual Proxy bằng cách vào Settings > Wi-Fi > chọn mạng đang connect, kéo xuống dưới cùng rồi set thông tin server + port tương ứng.

Câu hỏi tiếp theo là: port thì biết rồi, y chang khi nãy, còn server thì lấy đâu ra? Câu trả lời là server chính là local IP của Mac, muốn xem cái này thì trên Mac các bạn mở Network References ra (ở đâu chắc khỏi nói nữa ha :v), IP nó sẽ nằm ngay dưới Connection Status.

Kết

Mình vừa xài thử, tất nhiên là không đã như Fiddler, nhưng mà nói chung cũng thỏa mãn, hàng free không dám đòi hỏi nhiều :3 Có điều cài xong ngồi bắt request cho đã vẫn không thấy callback được gọi. PM hỏi thánh thì thánh chỉ, hóa ra là do chơi ngu, đặt breakpoint trong success callback mà không đặt trong failure callback :'( request bị lỗi, nó không gọi về là phải :'(

Chúc các bạn thành công!

YOLO \m/

 

Leave a Reply

Your email address will not be published. Required fields are marked *