AceBear 2019 - WEB

Store Image Service

Challenge: link
Hint: Fl4g.php

Đề bài là một trang web cho phép ta upload hình ảnh lên server thông qua file hoặc url.
Sau khi test mình tìm ra payload: file:///var/www/html/s3rv1c3/Fl4g.php

Đây là 1 bài SSRF (Server Side Request Forgery) vì server không kiểm tra giao thức của url, nên ta dùng giao thức file để truy cập file trên server.

Flag: AceBear{TurN_ONNNN_sSrf_tooooooooooo_RCE}

duudududduduud

Challenge: link
Hint: backup.bak

File backup.bak là file zip chứa source code của challenge.
Sau khi đọc source code thì mình thấy trang web cho phép chúng ta tạo và đăng nhập tài khoản.
Sau khi login, nếu tài khoản của chúng ta là admin thì chúng ta sẽ được upload file lên server.

Hướng giải quyết:

  • Tìm cách login với tài khoản admin
  • Upload shell
  • Tìm flag

Đọc source code mình tìm thấy được 1 vị trí có thể khai thác được lỗi SQL injection.
sql_inject

Hàn check_cookie là 1 hàm decrypt AES mode CBC với IV là key.
check_cookie
AES mode CBC:
aes_cbc
Với việc sử dụng key làm IV thì ta có thể tìm lại được key theo cách như sau:

intermediate2 = ciphertext1 ^ plaintext2
key = new_plaintext2 ^ intermediate2

Sau khi có được key thì ta có thể craft username tùy ý để thực hiện SQL injection.
query

Chúng ta sẽ chọn username như sau:
' UNION SELECT username,1 FROM Users WHERE username='YYYYYY'#

Với YYYYYY là username mình tạo trước thông qua chức năng register, với username này thì sau khi inject vào câu query thì kết quả trả về luôn có colunm admin=1, đồng nghĩa với việc ta đã login với quyền admin.

Sau khi login với quyền admin, ta được phép upload file zip, server sẽ giải nén và trả về cho ta đường dẫn sau khi giải nén. Các file sau khi giải nén phải có 1 file manifest.json chứa json có thuộc tính và giá trị thỏa điều kiện như sau:json

Chúng ta sẽ craft file manifest.json và shell.php, sau đó nén lại và upload lên server, chúng ta sẽ có được shell trên server, sau khi có shell ta sẽ lấy được flag.

exploit.py
shell.zip

Flag: AceBear{From_Crypt0_m1sus3_t0_Rc3_______}

Show Comments

Get the latest posts delivered right to your inbox.