- VisualStudio2022
- pprof-Hướng dẫn sử dụng nó trong bản mạng trực tiếp
- Triển khai C# các loại hộp chọn nhiều màu lựa chọn thả xuống, cây lựa chọn nhiều màu lựa chọn thả xuống và các nút tối đa
- [Ghi chú học tập] Cơ sở dữ liệu cấu trúc: cat tree
Bạn bè trong nhóm nhầm lẫn gặp phải sự cố này. Sau khi đăng nhập vào trang web Mailivery, biểu mẫu đã gửi (địa chỉ email và mật khẩu cũng chính xác), tiêu đề yêu cầu, v.v. đều ổn. ? Than ôi, hãy hành động khi đến lúc phải hành động. Hãy để tôi xem điều gì sẽ xảy ra! .
Rõ ràng, bạn cần: email (có xác minh email) và mật khẩu.
Mở công cụ dành cho nhà phát triển, nhập email và mật khẩu của bạn để đăng nhập và xem các yêu cầu cũng như phương thức của giao diện đăng nhập:
URL yêu cầu: https://app.mailivery.io/login Phương thức yêu cầu: POST Mã trạng thái: Đã tìm thấy 302
302? ! Chuyển hướng? Sau khi đăng nhập không thành công, bạn được chuyển hướng đến trang web đăng nhập và được yêu cầu đăng nhập lại. Kiểm tra trực quan cho thấy các dự án front-end và back-end không bị tách biệt (Aba Aba). Nếu đăng nhập thành công, cookie được đặt khi đăng nhập thành công chắc chắn sẽ được chuyển hướng đến trang chủ hoặc bảng chính liên quan.
Kiểm tra tiêu đề gửi giao diện đăng nhập:
POST /đăng nhập HTTP/1.1 Chấp nhận: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed- Exchange;v=b3;q=0.7 Mã hóa chấp nhận: gzip, deflate, br, zstd Ngôn ngữ chấp nhận: zh-CN,zh;q=0.9 Kiểm soát bộ đệm: không có bộ đệm Kết nối: duy trì Độ dài nội dung: 341 Loại nội dung: application/x-www-form-urlencoded Cookie: XSRF-TOKEN=Bỏ qua mailivery_session=Bỏ qua; ; ...... DNT: 1 Máy chủ: app.mailivery.io Xuất xứ: https://app.mailivery.io Pragma: không có bộ đệm Người giới thiệu: https://app.mailivery.io/login Sec-Fetch-Dest: document Sec-Fetch-Mode: điều hướng Sec-Fetch-Site: cùng nguồn gốc Sec-Fetch-User: ?1 Yêu cầu nâng cấp-không an toàn: 1 người dùng -Tác nhân: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/130.0.0.0 Safari/537.36 sec-ch-ua: "Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99" sec- ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows"
Không có tham số mã hóa, emm..., nó thực sự trông rất đơn giản. Lưu ý rằng Loại nội dung là application/x-www-form-urlencoded.
Chúng ta hãy xem các thông số đã gửi:
_token=lCsu2Ruuw33uHlHkRlKwZG3C2tw7TQBjUoTo1yjz&trả_user_Khe2xqZLA4Tkq3py=&gửi ed_in_seconds=eyJpdiI6IjJ4OXdFK3ZPZklKUnNadXVtRTk0L3c9PSIsInZhbHVlIjoiNHg5NzJmUjM3Un lDOU1tanlnUHpWdz09IiwibWFjIjoiMDYxYmRkODU0YmY1ZjY0MDk4OWMzNmM5YWU5MjNmZDM4NTg5NzQ1M mM3MzBjNzQ3YjYxNTg0MjliYjFjYzM3OCIsInRhZyI6IiJ9&email=xxx%40foxmail.com&password=123
Hãy nhìn vào định dạng:
_token: lCsu2Ruuw33uHlHkRlKwZG3C2tw7TQBjUoTo1yjz đã trả_user_Khe2xqZLA4Tkq3py: đã gửi_in_giây: eyJpdiI6IjJ4OXdFK3ZPZklKUnNadXVtRTk0L3c9PSIsInZhbHVlIjoiNHg5NzJmUjM3UnlDOU1tanlnUHpWdz09IiwibWFjIjoi MDYxYmRkODU0YmY1ZjY0MDk4OWMzNmM5YWU5MjNmZDM4NTg5NzQ1MmM3MzBjNzQ3YjYxNTg0MjliYjFjYzM3OCIsInRhZyI6IiJ9 email: xxx%40foxmail.com mật khẩu: 123
Đối với việc gửi biểu mẫu, có ít nhiều tham số xác minh, chẳng hạn như ở đây: _token, pay_user_Khe2xqZLA4Tkq3py, submit_in_seconds.
Sau nhiều lần gửi đăng nhập, người ta nhận thấy rằng các giá trị của _token và submit_in_seconds đang thay đổi và những gì đã thay đổi trong pay_user_Khe2xqZLA4Tkq3py là phần sau pay_user_. Và các tham số này có liên quan đến cookie của cửa sổ, nếu không nhất quán sẽ xảy ra lỗi 416 khiến trang hết hạn. Có vẻ như đây là một điểm chống leo. Hãy nhớ những gì tôi đã nói, trang web này không được tách biệt khỏi mặt trước và mặt sau, vì vậy các tham số này phải được ẩn trong biểu mẫu. Tìm kiếm phần tử để phân biệt submit_in_seconds.
Rất tốt, bạn có thể xem nguồn gốc của ba tham số của chúng tôi, hãy xem:
Truy cập trang web đăng nhập (GET) và nhận được ba tham số Cookie được đặt trong tiêu đề phản hồi tại thời điểm này không có hiệu lực đăng nhập. Trang web đăng nhập (POST) mang ba tham số và chuyển hướng dựa trên kết quả: Nếu đăng nhập thất bại, Cookie. được đặt trong tiêu đề phản hồi tại thời điểm này. Việc mang cookie yêu cầu chúng tôi tiếp tục đăng nhập. Nếu đăng nhập thành công, cookie được đặt trong tiêu đề phản hồi tại thời điểm này sẽ có hiệu ứng đăng nhập. đi thẳng đến trang chủ.
Tiếp theo, triển khai nó bằng Python và tạo login.py và Dashboard.py.
login.py thực hiện giao diện đăng nhập:
yêu cầu nhập url = "https://app.mailivery.io/login" _token = '' pay_user = '' submit_in_seconds = '' email = 'xxx%40163.com' mật khẩu = 'xxxxxxx' payload=f'_token={ _token}&{pay_user}=&submit_in_seconds={submit_in_seconds}&email={email}&password={password}' headers = { 'Chấp nhận': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed- Exchange;v=b3;q=0.7', 'Ngôn ngữ chấp nhận': 'zh-CN,zh;q=0.9', 'Máy chủ': 'app.mailivery.io', 'Xuất xứ': 'https://app.mailivery.io', 'Người giới thiệu': 'https://app.mailivery.io/login', 'Sec-Fetch-Dest': 'tài liệu', 'Chế độ tìm nạp giây': 'điều hướng', 'Trang web tìm nạp giây': 'cùng nguồn gốc', 'Người dùng tìm nạp giây': '?1', 'Yêu cầu nâng cấp-không an toàn': '1', 'Tác nhân người dùng': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/130.0.0.0 Safari/537.36', 'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows "', 'Bánh quy': 'XSRF-TOKEN=eyJpdiI6Ikk1WjFjMFRsdVhKdzBuMjBWamNVVEE9PSIsInZhbHVlIjoiblAzS0ZBOEUyK1lXWGV0 ZXhuT1Y5MldLc290d2ZzL0E3dTQxT3BDMmNGR3d6aG0vamhUekozeVFCUVVVczRJSWxxQTM1ZGpvOU5KTm11bFp4N EsvWGlObUJ6V1A3WWc1WFJXcUlPYWYzYTgrSGNMZ2VtM0s1R0tGUlJ4Z0ZMSy8iLCJtYWMiOiI2NGUxYmNhMjEwMm E3ZDNmOTc4OTcxMWVlZGY3ODIyNDZhODBiYzUxZjVhMWE2YWZkMWVhOGM2YjA4MmQzYmY0IiwidGFnIjoiIn0%3D; mailivery_session=eyJpdiI6IjVwL1QwUHNhMTlTdGUyZ0ozUzY3aGc9PSIsInZhbHVlIjoiYlNuSXI2d2tKWjMr YjFpVmx1Ym5uTEVOUGhXZjFKRGhVV1VMeXRHQ1BpRWFsV0ZnYVFkNDd4Vm9wdXY1ZelqVWpVL2xhSytNdnBDYS9NNHR BWmNzRDF4ZjJtWFhPTHFJRFBLVnNYSmFPMW9HSkEweVVpQTZZVjhJU2k5WSswR0oilLCJtYWMiOiJkYzg0ZmY2ODEwZ mEyMzczNzU5NGU4YzMwYjA2MDRlZTc0ZWJiNDc4ZDBhMDU4OTgyM2E3NDMzZDM3NmRmNTcxIiwidGFnIjoiIn0%3D', 'Loại nội dung': 'application/x-www-form-urlencoded', 'Kết nối': 'keep-alive' } reply = request.request("POST", url, headers=headers, data=payload, allow_redirects= Sai, proxy={ 'http': Không, 'https': Không }) print(response.headers) print(response.status_code)
Lưu ý rằng tôi đã nói rằng cookie có liên quan chặt chẽ với ba tham số. Các cookie trên được GET thu được trên trang đăng nhập và ba tham số đều giống nhau.
Tôi đã bỏ qua các giá trị của ba tham số. Cần đặc biệt chú ý: khi yêu cầu, tốt nhất nên đặt giá trị của allow_redirects thành Sai, vì lớp cơ bản chuyển hướng khác với trình duyệt. Đúng, bạn sẽ thấy rằng cookie của bạn luôn không hợp lệ. Bởi vì quá trình chuyển hướng sau xảy ra:
Khi email mật khẩu đúng: đăng nhập -> bảng điều khiển -> đăng nhập Khi email mật khẩu không chính xác thông tin nhập chưa được xác định: đăng nhập -> Trang hết hạn
Tại sao cuối cùng tôi phải đăng nhập lại?
Cookie hoặc ba tham số số lượng chưa sẵn có trong phần hỗ trợ phụ.
Chúng tôi chỉ cần lấy Set-Cookie giá trị trong tiêu đề phản hồi trước khi chuyển sang trang tổng quan, tức là XSRF-TOKEN và mailivery_session.
Vì vậy, chúng tôi đã liên tục sử dụng chuyển hướng cho các yêu cầu.
Tiếp theo, hãy xem tệp Dashboard.py, chủ yếu để kiểm tra xem việc lấy cookie có hợp lệ hay không:
yêu cầu url nhập = "https://app.mailivery.io/campaign/dashboard" payload={} xsrf_token = 'xxx' mailivery_session = 'xxx' headers = { 'Cookie': f'XSRF-TOKEN={xsrf_token} ;mailivery_session={mailivery_session}', 'Tác nhân người dùng': 'Mozilla/5.0 (Windows NT 10.0; Win64; ': 'tiếp tục tồn tại' } phản hồi = request.request("GET", url, headers=headers, data=payload, proxy={ ' http': Không, 'https': Không }) print(response.text)
Cookie ban đầu, sau đó đăng nhập dựa trên email và mật khẩu, sau đó truy cập trang tổng quan bằng cookie.
Việc lấy thông tin này tự động rất đơn giản, thông qua cú pháp phân tích etree trong lxml và cookie được lấy thông tin phản hồi tiêu đề request.
If mật khẩu đăng nhập Sau đó, thông tin đăng nhập cũng rất đơn giản. nhập đúng, bạn sẽ nhận được hợp lệ cookie.
Cuối cùng, valid cookie đăng nhập được lấy từ cấp độ trước đó.
Cookie không hợp lệ !
Với một thay đổi, nếu có vấn đề với các biểu mẫu tham số và cookie cấm đầu thu thập tự động, 416 sẽ được phản hồi theo yêu cầu. Sẽ phản hồi với 200. 200 có thiết yếu nhất phải là điều tốt không? đến trang tổng quan thì nó phải là 302! lại, ví dụ 3 giây? Tất cả đều có thể. và thử cho đến khi xảy ra lỗi 302.
Mã hoàn chỉnh không được cung cấp, bạn chỉ cần tự mình tìm nó ~.
Nếu bạn muốn biết thêm về chiến đấu thực tế: Đăng nhập mô phỏng qua thư, vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết viết liên quan.
Những người bạn trong Nhóm Nhầm lẫn Tình huống Sự cố đã gặp phải sự cố như vậy. Sau khi đăng nhập vào trang web Mailivery, không có vấn đề gì với biểu mẫu đã gửi (địa chỉ email và mật khẩu đều chính xác), tiêu đề yêu cầu, v.v. Tại sao nó luôn được chuyển hướng đến. trang đăng nhập? Ồ, hãy hành động khi đến lúc phải hành động. Hãy để tôi xem chuyện gì đang xảy ra.
Thực hành chiến đấu - Giới thiệu về phản ứng khẩn cấp trong phòng thủ và tấn công của ngành: Kịch bản máy chủ Hệ điều hành Mật khẩu tài khoản máy chủ Ubuntu: root/security123 Phân tích các gói lưu lượng trong /home/security/security.pcap
Bối cảnh Gần đây, công ty đã chuyển công cụ liên kết mà chúng tôi đã sử dụng trước đây sang OpenTelemetry. Công nghệ của chúng tôi là: OTLP C.
1. Các phương thức của cùng một lớp được sửa đổi với đồng bộ hóa 1. Gói mã đồng thời nhập java.util.concurrent.TimeUnit;
1. Ví dụ đơn giản 1 code package concurrent.threadlocal; /** * ThreadLocal test* * @author cakin */ public class T
1. Bối cảnh vấn đề Sự cố xảy ra trong quá trình sắp xếp nhanh. Tôi sẽ đơn giản hóa nền tảng kinh doanh nhiều nhất có thể để mọi người chỉ có thể tập trung vào chính vấn đề tương tranh. Hoạt động phân loại tạo ra một nhiệm vụ cho mỗi gói chuyển phát nhanh mà chúng tôi gọi là nhiệm vụ. Có hai trường trong nhiệm vụ yêu cầu
Tìm kiếm đàn hồi môi trường thực tế 8.5.0 + kibna 8.5.0 + springboot 3.0.2 + tìm kiếm dữ liệu mùa xuân 5.0.2 +
Tăng tốc triển khai mô hình tensorrt yolov8 trong Win10 [Thực tế] TensorRT-Alpha triển khai khả năng tăng tốc gpu của mô hình end2end dựa trên tensorrt+cuda c++, hỗ trợ win10,
Triển khai tăng tốc mô hình tenorrt Yolov8 [Thực tế] TensorRT-Alpha triển khai khả năng tăng tốc gpu của mô hình end2end dựa trên tensorrt+cuda c++, hỗ trợ win10 và linux.
Thư mục như sau: Tại sao bạn cần tùy chỉnh các loại ủy quyền? Khi giới thiệu các điểm kiến thức cơ bản của OAuth2.0, chúng tôi đã giới thiệu bốn loại ủy quyền được hỗ trợ, như sau: Chế độ mã ủy quyền Chế độ đơn giản Chế độ máy khách Chế độ mật khẩu
Bài viết hôm nay giới thiệu cách vô hiệu hóa JWT trong các tình huống như thay đổi mật khẩu, sửa đổi quyền, đăng xuất, v.v. Mục lục của bài viết như sau: Giải pháp Một trong những ưu điểm lớn nhất của JWT là nó không trạng thái và chứa tất cả các thông tin cần thiết cho việc xác thực và xác thực ở phía máy chủ.
Lời nói đầu Xin chào mọi người, mình là cậu bé nhặt ốc sên. (Vui lòng thêm một ngôi sao vào đầu) Khi chúng tôi thực hiện các yêu cầu phân trang hàng ngày, chúng tôi thường sử dụng giới hạn để đạt được nó. Tuy nhiên, khi độ lệch đặc biệt lớn, hiệu quả truy vấn sẽ thấp. Bài viết này sẽ được chia thành bốn giải pháp để thảo luận về cách tối ưu hóa hàng triệu MySQL
Lời nói đầu Xin chào mọi người, mình là cậu bé nhặt ốc sên. Khi chúng ta thường viết mã, trong hầu hết các trường hợp, chúng ta viết mã theo kiểu đường dẫn, về cơ bản có thể triển khai logic nghiệp vụ. Làm thế nào để tìm thấy niềm vui trong việc viết code, tôi nghĩ cách tốt nhất là sử dụng các mẫu thiết kế để tối ưu hóa bản thân
Đầu tiên chúng ta hãy nói về một số kiến thức cơ bản về lắp ráp cánh tay. (Chúng tôi lấy armv7 làm ví dụ, chưa bàn về 64-bit trên iPhone 5s mới nhất) Phần kiến thức cơ bản: Đầu tiên các bạn giới thiệu về các thanh ghi: r0-r3: dùng để truyền tham số hàm và trả về giá trị r4 -r6
1. Các phương thức tĩnh của cùng một lớp được trang trí đồng bộ 1. Mã gói đồng thời; nhập java.util.concurrent.TimeUnit;
DRF nhanh chóng viết năm giao diện, nhanh hơn bạn có thể làm bằng tay... Chiến đấu thực tế - DRF nhanh chóng viết giao diện môi trường phát triển Python3.6 Pycharm Professional Edition 2021.2.3 Sqlite3 Django 2.2 djangorestfram
1. Thêm dependency org.apache.thrift libthrift 0.11.0 2. Viết IDL để định nghĩa cấu trúc dữ liệu, ngoại lệ, giao diện và các dữ liệu khác thông qua IDL (file .thrift) để sử dụng bằng nhiều ngôn ngữ lập trình khác nhau
Tôi đang đọc chương về semaphore trong sách điện tử Redis in action. Đây là mã python để triển khai semaphore bằng cách sử dụng redis def Acacqui_semaphore(conn, semn).
Các điều khiển tùy chỉnh rất phổ biến trong quá trình phát triển WPF. Đôi khi một số điều khiển cần phải phù hợp với doanh nghiệp hoặc làm đẹp phong cách thống nhất. Tại thời điểm này, một số sửa đổi đối với các điều khiển là cần thiết. Nút thư mục đặt góc bo tròn
Nhiệm vụ được thầy giao yêu cầu viết một service để rèn luyện kỹ năng. Sau khi tìm ra nguyên lý và quy trình của socket, mình chạy một demo nhỏ mình cảm thấy rất thành công và nội dung code tương đối rõ ràng, dễ hiểu. điều đó rất mang tính giáo dục và truyền cảm hứng. mã số ?
Tôi là một lập trình viên xuất sắc, rất xuất sắc!