# Lộ thông tin tài khoản mail CTY A từ một dòng code example
## Chém gió
Thì mình chém gió tí về phần mình tìm ra bug này, trong lần được anh trai mình kêu mình chơi thử các trang bugbounty để có thêm kinh nghiệm, thì mình đã ghé qua một trang bugbounty của Việt Nam, mình chỉ tình cơ may mắn tìm ra bug này thôi. Bug này cũng không có gì ghê gớm hay đòi hỏi gì cao cả. Hãy xem cùng mình tại sao mà mình có thể tìm ra bug này.
### Trong blog này mình xin che tên của ứng dụng, tên công ty và những thông tin nhạy cảm có liên quan
## Mở đầu
Chắc mọi người cũng biết trong các ứng dụng thì sẽ có các bài chia sẻ và code để được đăng tải giúp cho người dùng hiểu và dễ thực hiện theo, nhưng trong những dòng code đó có thể để lộ thông tin tài khoản của bạn.
## Các bước và suy nghĩ sao mà mình tìm ra được bug
Sau khi mình tản dạo sử dụng ứng dụng đó, mình đã tìm hiểu các chức năng mà do ứng dụng đó thực hiện rồi
Vì dịch vụ của họ không hề cho người dùng tùy ý đăng ký tài khoản. Thì mới đầu mình đã thử cách thức đăng nhập để có thể đi sâu vào bên trong hơn như: brute-force username password,

Mình bắt đầu đi tìm thông tin liên quan đến ứng dụng ấy, từ tất cả các nguồn, từ thông tin tài khoản, code của họ trên các nền tảng lớn như google, github, gitlab, …… **nhưng mình đều không tìm ra được gì để có thể đi vào**
Nhưng số phận vẫn may mắn, thì mình đã tìm được đến nơi họ public hướng dẫn sử dụng

Đó là phần tải về. Họ đã đưa **code mà họ test** làm hướng dẫn mẫu cho mọi người
mình mình đã tải về các code họ đưa lên về xem
thì mình đã thấy **username và password** họ để trong code đó

lúc đó mình thấy có cái hay để thử rồi, nhưng mà đời không như mơ
tài khoản mật khẩu bị sai

Nhưng mà như thế chưa làm mình bị nhụt chí, vì vẫn còn những thư mục được public kia nữa mà
**tải → thử và tải → thử và tải → thử**, gì quan trọng mình nhắc 3 lần, nhiều tài khoản đều đều không được


Lúc đó mình cũng hơi buồn buồn rồi, nhưng mà mình vẫn phải thử hết tất cả tài khoản trong đó
Và may quá cuối cùng cũng có 1 tài khoản trong đó có mật khẩu đúng

Hehehe vậy là đây là tài khoản họ test tính năng sau đó quên mất xóa và mình may mắn tìm được này
Mọi chuyện không chỉ dừng ở đó, có khi thì các anh developer sẽ sử dụng các tài khoản có quyền cao để test và sử dụng ứng với để nó không bị lỗi rồi dần dần họ mới phân quyền lại
Thì mình vọc vạch tìm kiếm các thứ trong ứng dụng với tài khoản đó
Mình đến với chỗ **Quản lý hệ thống → Cấu hình doanh nghiệp**

thì mình thấy phần Email này có chút vấn đề, là đoạn này họ đã điền sẵn ở đó một tài khoản mail của công ty họ và mật khẩu nhằm mục đích gửi mail tự động thông báo đến người dùng
Lúc đó câu hỏi đã hiện ra trong đầu mình **Liệu mình có thể đọc password đó không nhỉ**
thì mình thực hiện xem, và các dấu ********* đó chỉ để che với người dùng thường thôi
thì mình đã đọc được tài khoản và mật khẩu của email đó

Sau khi lấy được tài khoản với **mật khẩu app của email** thì mình đã nghĩ đến việc **có thể làm gì** với chúng
Thì mình đã tìm hiểu với mật khẩu đó mình có thể gửi **mail giả danh …..**
Mình tiến hành thử khai thác với email đó với mục đích gửi mail cho chính mình với script như thế này
```jsx
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
user_name = "hoadondientu@*************.vn"
password = "VH**********"
server_address = "125.***.***.***"
port = 465
security_type = 1
recipient_email = "ductoan@gmail.com"
subject = "Chúc 1 ngày vui vẻ"
body = "Chào anh, \n\nChúc anh có một ngày vui vẻ!\n\nThân ái\n\n Danbi"
message = MIMEMultipart()
message['From'] = user_name
message['To'] = recipient_email
message['Subject'] = subject
message.attach(MIMEText(body, 'plain'))
with smtplib.SMTP_SSL(server_address, port) as server:
server.login(user_name, password)
server.sendmail(user_name, recipient_email, message.as_string())
print("Email đã được gửi thành công.")
```

Vào check email của mình có gì không

# Yeahhhh mình đã khai thác thành công
Thì mình đã thông báo đến chương trình rồi nhưng mà hơi tiếc vì cũng có người tìm ra trước giống như mình
### Nhưng cũng vui vì lỗi này mình được đánh Severity ở mức cao nhất: Critical

Bài học sau khi mình làm challenge này là tỉ mỉ, mọi chỗ đều có thể có BUG. Mình cũng muốn nhắn nhủ đến các bạn developer là mình không nên đưa code example public ra internet khi chưa kiểm tra kỹ bên trong có chứa tài khoản mật khẩu quan trọng hay không, đặc biệt là khi test mình không nên đưa các thông tin quan trọng vào trong đó hãy tạo một tài khoản mới không chứa dữ liệu quan trọng bên trong để thực hiện test tính năng.
## Cảm ơn mọi người đã đọc bài Blog này của mình
### Chúc mọi người một ngày vui vẻ tốt lành và làm việc thật năng suất