Một số hướng giải các challenges mức dễ tại https://app.hackthebox.com/challenges?category=8 📱 🔨

Don’t Overreact

Tải app về và mở lên bằng Jadx-GUI, thì có thể thấy rằng app được code bằng React Native

Với React Native, các đoạn mã logic của ứng dụng được viết phần lớn bằng Javascript và được “đóng gói” trong file index.android.bundle (đối với android). File này có thể tìm thấy trong thư mục /assets/ sau khi decompile file apk bằng apktool

Do app không dùng helmet (code không bị chuyển thành bytecode), nên có thể đọc code đã obfuscate tại index.android.bundle, cuối file này có một chuỗi được mã hoá bằng base64

Decode chuỗi trên có kết quả là flag 👀

Không nên lưu các chuỗi bí mật ở client, app build bằng React Native cần sử dụng helmet để tăng tính bảo mật 😀

FastJson and Furious

Lại tải app về và mở file apk bằng Jadx-GUI, có thể thấy khi click button, hàm calcHash sẽ được gọi để lấy flag

Code hàm calcHash

để chạy được code trong khối try catch thì giá trị của biến succeed phải là true (hiện tại đang là false). Để thay đổi giá trị của biến này, có thể dùng code frida script như sau:

Sau khi chạy app với script trên, ta có flag

Nhưng rất tiếc flag này không chính xác :v

Mình cứ nghĩ là trong app sẽ có một chuỗi nào đó dạng JSON để điền vào input rồi ra flag, nhưng tìm mãi không thấy nên mình đã đi xem writeup 🙂‍↕️

Pinned

Bài này thì kiếm cái script bypass SSL trên mạng, đem về chạy để bắt request qua burpsuite là xong 😀

Manager

Bài này bật burp suite lên, thực hiện các chức năng để bắt request từ app. Sẽ phát hiện một lỗi tại API POST /manage.php, cho phép update mật khẩu của user tuỳ ý mà không cần xác thực. Vậy chỉ cần đổi mật khẩu admin rồi đăng nhập là có flag 😀

Anchored

App thực hiện check máy đã root và chặn không cho sử dụng như trong mô tả “The application is intended to run in a non-rooted device”. Khi mở app lên, app có hiện một thông báo là “Rooted device detected!”, thấy vậy thì mình đã dùng jadx-gui để tìm chuỗi này xem nơi trả về kết quả check root :v

Có 4 đoạn code check. Các phần kiểm tra file, app thì đã bị magisk bypass. Nhưng có một đoạn code làm mình thấy phần check này rất là false positive

Chỗ này z3 luôn có giá trị là false mà 🤔

Và mình quyết định cho app chạy hàm finish nhưng không cho thoát app bằng script sau:

Và một màn hình của app xuất hiện

Việc còn lại chỉ là bypass ssl pinning bằng script trên mạng và lụm flag 😋

APKrypt

Code của app như thế này

Thì chỉ cần dùng frida script như sau để lấy flag 😀

APKey

Code

Thêm một bài có thể dễ dàng lấy flag bằng frida script

Cat

Bài này tải file về giải nén ra được 1 file .ab, file .ab là file android backup. Do không được bảo vệ bằng mật khẩu, file này có thể giải nén bằng lệnh sau

Sau khi giải nén file cat.tar, ta có một thư mục Cat, lục lọi một lúc thì tìm được flag

Categorized in: