## https://sploitus.com/exploit?id=3EFE9635-6CD2-521F-AF18-CA564FE4B213
# Exploit-CVE-2023-22518
CVE-2023-22518 in Confluence
CVE-2023-22518 : Lỗ hổng này được mô tả là “lỗ hổng về việc ủy quyền không đúng cách trong cơ sở dữ liệu và máy chủ của Confluence”. Lỗi ảnh hưởng tới các phiên bản On-premises của các sản phẩm Atlassian.
Set up môi trường
Sử dụng version bị lỗi 8.0.4
URL Download :
https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.0.4-x64.exe
![1](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/eecf2867-0569-4550-9551-66c04584ef81)
Chọn Trial Installation, sau đó click vào link để lấy free trial key . Sau đó setup cluster : chọn non-cluster
![2](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/bdeaf3c6-178c-44a9-94bb-df485f19305c)
Sau đó đến với setup database -> Chọn MySQL
![3](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/1f448607-1080-47b1-8a31-a34c65ec768a)
Làm theo hướng dẫn :
1. Download the MySQL driver
2. Drop the .jar file in /home/lily/atlassian/confluence/confluence/WEB-INF/lib
3. Restart Confluence and continue the setup process.
4.
![4](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/8a9c97f6-90e2-4f7b-b0f6-1a25b49d9885)
Cấu hình database, tạo user và password table
```
CREATE DATABASE securedb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'admin123'@'localhost' IDENTIFIED BY 'supersecure';
GRANT ALL PRIVILEGES ON securedb.* TO 'admin123'@'localhost';
GRANT SUPER ON *.* TO 'your_username'@'your_host';
FLUSH PRIVILEGES;
```
Sau đó edit /etc/mysql/my.cnf . Thêm các dòng sau vào :
```
transaction-isolation = READ-COMMITTED
log_bin_trust_function_creators = 1
```
![5](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/fa758e02-3f72-4116-900a-05c020380894)
Sau đó restart Mysql và Conflunce . Rồi vào trang cài đặt ở localhost:8090 và sử dụng database đã tạo điền vào
![6](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/37044769-4bf9-4d21-91d3-7e349e47fb16)
Check connection success , click Next . Sau đó Sign up .
![7](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/14ac3510-6483-472a-876a-45d72b81e470)
Debug
*Diff
diff hai file jar của 2 version lên IntelliJ . Cụ thể ở đây tôi diff 2 version 8.0.4 và 7.19.16
Theo mô tả , diff file confluence.jar của 2 version với nhau
![image](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/1c90d058-9cf0-4d8a-a55a-88539d453b33)
Sự khác biệt giữa bản vá và bản chưa vá là @WebSudoRequired và @SystemAdminOnly
websudorequired là tính năng để nâng cao bảo mật của administrator sessions. Khi cố truy cập vào admin , hệ thống sẽ yêu cầu nhập lại mật khẩu dù bạn đã đăng nhập vào hệ thống. Bổ sung một bước xác thực bổ sung để đảm bảo về quyền truy cập quản trị
SystemAdminOnly : Là tính năng , nó giới hạn chức năng quản trị chỉ cho các tài khoản quản trị viên. Điều này giúp đảm bảo chỉ các tài khoản được ủy quyền mới được có thể thực hiện các thao tác quan trọng và ảnh hưởng đến hệ thống.
Đặt breakpoint ở validate() ở RestoreAction.class
![Screenshot 2024-03-24 081621](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/3d2e518f-29c4-41f4-ae6a-610f76d31bf5)
hàm lưu file được upload lên bằng getRestoreFileFromUpload
![Screenshot (541)](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/f068d516-0880-4f37-9302-26a65928441f)
getExportDescriptor được sử dụng để unzip và đọc nội dung của zip file
![Screenshot (542)](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/e6338a99-67c9-4261-80a0-512bac6889c4)
![Screenshot (543)](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/81caf522-28b9-4f21-9b31-38753acead86)
Tuy nhiên sau khi debug , vẫn chưa tìm được nguyên nhân gốc rễ của lỗ hổng
Nguyên nhân được mô tả trong CVE là lỗ hổng về ủy quyền . Điều này dẫn đến việc , chúng ta hướng chú ý đến các bài research về lỗ hổng của ngôn ngữ java trong quá trình developer phân quyền
Chuyển hướng chú ý sang tep struts.xml tệp này chứa thông tin về hành động và định tuyến dựa trên vùng tên cũng như các bộ chặn (interceptors) .
![Screenshot 2024-03-24 082951](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/87ab2bfc-9fa4-486c-8635-45062fbc1e4f)
![Screenshot 2024-03-24 083107](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/54a13704-966c-4ede-b524-b8bbc2cbefeb)
![Screenshot 2024-03-24 083206](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/cbf5d469-76ae-488d-96e6-3406438186ad)
![9](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/aca5b353-dc6b-4614-bde3-d0894be82022)
Ta thấy namespace /json tăng cường chức năng của namespace /admin. Do đó, các tuyến được tạo cho namespace /admin cũng có thể được truy cập thông qua namespace /json.
Trong ngữ cảnh của namespace /json,quá trình định tuyến yêu cầu bao gồm việc truyền qua một chuỗi các bộ chặn (interceptors) . Một trong những bộ chặn này, được gọi là WebSudoInterceptor, thực hiện kiểm tra dựa trên URI yêu cầu.
Cụ thể, WebSudoInterceptor thực hiện các bước kiểm tra sau:
Nếu đường dẫn yêu cầu là /authenticate.action thì sẽ bị bỏ qua.
Nếu đường dẫn yêu cầu là /admin, nó sẽ kiểm tra xem thuộc tính WebSudoNotRequired có rỗng hay không.
Nếu một yêu cầu được gửi tới '/json' ,thì request tới '/json/action' sẽ được chuyển đến '/setup/action' và 'admin/action' . Trong CVE này, vulnerable path là / 'json/setup-restore.action?synchronous=true'
Bắt request burpsuite , GET /json/setup-restore.action . Tuy nhiên nhận được phản hồi "Method Not Allowed response" .
Thử với việc POST /json/setup-restore.action?synchronous=true
và nhận được phản hồi 200
![10](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/a8cae965-b6f5-4a45-b2e8-443715be1180)
![11](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/d4b000a9-18d8-413f-8ec3-c857f54763a5)
Upload file xmlexport-200123123001.zip
![12](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/6f26dd50-9e6b-4cf4-81e8-62a67d6fbcc8)
lên và nhận phản hồi
![13](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/b6b74d37-f6bb-4c3a-ba3d-dbd36fed0fb3)
Bây giờ cta có thể đăng nhập vào với account admin :admin
![14](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/316f2b58-a6bc-41a2-b16f-67d215f9e8b5)
Và được kết quả như sau
![15](https://github.com/Lilly-dox/Exploit-CVE-2023-22518/assets/130746941/d9e123ef-367b-4a79-93ec-08425506ac36)