Câu chuyện trở thành Super Admin
Nè mọi người! Tôi hy vọng tất cả các bạn đang làm tốt.
Trước khi chuyển sang lỗ hổng P1 mà tôi đã tìm thấy, hãy để tôi kể cho bạn nghe một chút về bản thân mình. Tôi là Ömer và tôi đã làm việc với tư cách là Người kiểm tra thâm nhập tại Privia Security được hơn 3 năm. Bảo mật ứng dụng là lĩnh vực mà tôi đặc biệt quan tâm và thích làm việc. Ngoài công việc của mình, tôi còn tổ chức săn tìm lỗi để dành thời gian rảnh rỗi. Trong bài đăng trên blog này, tôi sẽ chia sẻ với bạn một lỗ hổng nghiêm trọng mà tôi đã tìm thấy khi thực hiện tiền thưởng lỗi trên Intigriti .
Vì vậy, chúng ta hãy đi thẳng vào nó, phải không?
Tôi bắt đầu với giai đoạn trinh sát, đây là giai đoạn quan trọng nhất trong quá trình tìm kiếm lỗ hổng. Tôi đã nói đó là bước quan trọng nhất bởi vì bạn càng khai thác được nhiều bề mặt tấn công thì bạn càng có nhiều khả năng tìm thấy các lỗ hổng.
Tôi luôn tạo danh sách từ dựa trên mục tiêu bên cạnh những từ thường được sử dụng. Ngoài ra còn có một công cụ mạnh mẽ khác có tên là fuzzuli , đó là công cụ làm mờ url nhằm mục đích tìm các tệp quan trọng bằng cách tạo danh sách từ động dựa trên tên miền. Nó cung cấp một danh sách từ bằng cách trích xuất tất cả các kết hợp của tên miền và cho phép làm mờ với các công cụ đối sánh cụ thể. Với các danh sách từ tôi đã tạo và sử dụng fuzzuli , tôi bắt đầu FUZZ tất cả các miền có trong phạm vi của chương trình đích. Tại một trong các miền, tôi tìm thấy tệp “ .dll ” chứa tất cả mã nguồn của một ứng dụng.
Mã ngôn ngữ trung gian chung ( CIL ) trong .NET framework là các tệp “ .dll ” và “ .exe ” mà bạn nhận được sau khi mã nguồn được biên dịch. Điều đó có nghĩa là khi ứng dụng web được biên dịch, tệp “. dll” chứa tất cả mã nguồn.
Tôi đã ẩn tên của tệp “.dll” vì nó có liên quan đến tên miền.
Tôi ngay lập tức tải xuống tệp “ .dll” mà tôi tìm thấy và bắt đầu kiểm tra nó. Có một số trình dịch ngược mà bạn có thể sử dụng để kiểm tra các tệp “ .dll ”, một số trong số chúng là dotPeek , ILSpy và dnSpy . Cá nhân tôi thích dnSpy hơn và trong blog này tôi sẽ tiếp tục về dnSpy .
Tôi đã mở tệp bằng trình dịch ngược dnSpy và xem qua các không gian tên và tên lớp. Sau khi làm điều này, tôi nhận ra rằng ứng dụng web mà tôi gặp phải là một dịch vụ API .
Khi tôi xem xét chi tiết toàn bộ đoạn mã, tôi bắt gặp một thứ thu hút sự chú ý của mình. Một trong số đó là có các loại tài khoản người dùng với các đặc quyền khác nhau trong dịch vụ này.
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, có 3 loại tài khoản người dùng khác nhau. Tôi được biết rằng loại tài khoản người dùng có thẩm quyền nhất trên dịch vụ là Quản trị viên cấp cao . Hãy ghi nhớ điều này, biết đâu nó sẽ giúp ích cho chúng ta .
Khi tôi tìm hiểu sâu hơn về mã, một thứ khác thu hút sự chú ý của tôi, đó là thông tin xác thực được mã hóa cứng.
Ngay khi tôi nhìn thấy điều này, tôi chỉ hy vọng những thông tin đăng nhập đó vẫn còn hiệu lực. Vì như bạn có thể thấy trong ảnh chụp màn hình ở trên, thông tin đăng nhập mà tôi tìm thấy có đặc quyền của Quản trị viên cấp cao . Ngay lập tức, tôi bắt đầu tìm kiếm những nơi mà tôi có thể sử dụng các thông tin đăng nhập này và tôi đã tìm thấy một điểm cuối API nơi tôi có thể nhận phiên sử dụng thông tin đăng nhập trong mã. Tôi đã cố gắng để có được một phiên ngay lập tức từ đó.
Vâng! Thông tin đăng nhập vẫn hợp lệ và tôi có thể đăng nhập vào tài khoản Quản trị viên cấp cao . Sau đó, tôi quyết định kiểm tra những gì tôi có thể làm với các đặc quyền của tài khoản này. Tôi thấy rằng các hoạt động quan trọng có thể được thực hiện trong ứng dụng bằng cách sử dụng mã thông báo có đặc quyền “ SuperAdmin ”. Ví dụ: tất cả người dùng có thể được liệt kê, mật khẩu của người dùng khác có thể được thay đổi, bất kỳ người dùng nào cũng có thể bị xóa hoặc có thể thêm người dùng mới. Tất nhiên, tôi đã chọn tạo người dùng cửa hậu của riêng mình cho PoC ( Proof of Concept ).
Hãy trở thành người đàn ông hàng đầu!!!
Bằng cách mở người dùng của riêng mình, tôi đã trở thành một trong những người dùng được ủy quyền nhất của dịch vụ này và chúng tôi đã đi đến phần cuối của câu chuyện. Sau khi thực hiện các bước trên, tôi đã viết một báo cáo chi tiết bao gồm tất cả các bước tôi đã thực hiện và báo cáo cho chương trình.
Mốc thời gian:
- 02.09.2023 -> Báo cáo lần đầu
- 13.02.2023 -> Đã thay đổi mức độ nghiêm trọng từ Cao (7.5) thành Nguy hiểm (9.1)
- 13.02.2023 -> Bị Intigriti xử lý
- 22.02.2023 -> Được Công ty chấp nhận
- 22.02.2023 -> Được đánh dấu là đã giải quyết và được thêm vào Hall of Fame.
Cảm ơn bạn đã đọc câu chuyện của tôi. Hẹn gặp lại bạn trong một cuộc phiêu lưu khác. ♂️

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































