Trong bài viết này chúng ta sẽ giải quyết nhiệm vụ thứ 25 từ trang web
thông tin tổ chứcĐặc biệt đối với những người muốn tìm hiểu điều gì đó mới và phát triển trong bất kỳ lĩnh vực thông tin và bảo mật máy tính nào, tôi sẽ viết và nói về các danh mục sau:
- PWN;
- mật mã (Crypto);
- công nghệ mạng (Network);
- đảo ngược (Kỹ thuật đảo ngược);
- kỹ thuật giấu tin (Stegano);
- tìm kiếm và khai thác các lỗ hổng WEB.
Ngoài ra, tôi sẽ chia sẻ kinh nghiệm của mình về điều tra máy tính, phân tích phần mềm độc hại và chương trình cơ sở, các cuộc tấn công vào mạng không dây và mạng cục bộ, tiến hành các cuộc tấn công dồn dập và viết các khai thác.
Để bạn có thể tìm hiểu về các bài viết mới, phần mềm và các thông tin khác, tôi đã tạo
Tất cả thông tin chỉ được cung cấp cho mục đích giáo dục. Tác giả của tài liệu này không chịu trách nhiệm về bất kỳ thiệt hại nào gây ra cho bất kỳ ai do sử dụng kiến thức và phương pháp thu được từ việc nghiên cứu tài liệu này.
Giải quyết nhiệm vụ otp
Hãy tiếp tục với phần thứ hai. Tôi sẽ nói ngay rằng nó phức tạp hơn lần đầu tiên, nhưng lần này họ không cung cấp mã nguồn của chương trình. Đừng quên thảo luận tại đây (https://t.me/RalfHackerPublicChat) và tại đây (https://t.me/RalfHackerChannel). Hãy bắt đầu nào.
Bấm vào biểu tượng có chữ ký otp. Chúng tôi được cung cấp một địa chỉ và cổng để kết nối.
Chúng tôi kết nối và nhìn xung quanh máy chủ.
Một lá cờ mà chúng ta không thể đọc được, một chương trình và mã nguồn của nó. Hãy nhìn vào nguồn.
Hãy sắp xếp nó ra. Chương trình lấy mật khẩu làm đối số.
Tiếp theo, 16 byte ngẫu nhiên được lưu trữ trong biến otp.
Một tệp có tên ngẫu nhiên được tạo trong thư mục tmp (8 byte đầu tiên là otp) và 8 byte ngẫu nhiên được ghi vào đó (8 byte thứ hai là otp).
Vì lý do nào đó, giá trị của tệp đã tạo sẽ được đọc và so sánh với mật khẩu đã nhập.
Đây là nơi mà lỗ hổng xuất hiện. Nó bao gồm việc lưu tạm thời số được tạo vào một tệp. Chúng ta có thể giới hạn kích thước file, ví dụ bằng 0, khi ghi và đọc sẽ so sánh 0 với mật khẩu, cách này có thể thực hiện như sau.
# ulimit -f 0
Bây giờ hãy chạy chương trình.
Chúng tôi gặp lỗi. Không thành vấn đề, nó có thể được xử lý bằng cùng một con trăn.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Chúng tôi nhận được lá cờ và 100 điểm dễ dàng của chúng tôi. Và chúng ta tiếp tục: trong bài viết tiếp theo, chúng ta sẽ đề cập đến Web. Bạn có thể tham gia cùng chúng tôi tại
Nguồn: www.habr.com