paint-brush
Quét 2,6 triệu tên miền cho các tệp .Env bị phơi nhiễmtừ tác giả@sdcat
9,716 lượt đọc
9,716 lượt đọc

Quét 2,6 triệu tên miền cho các tệp .Env bị phơi nhiễm

từ tác giả sdcat2022/11/10
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Một nhà phát triển phần mềm đã quét 2,6 triệu tên miền để tìm các tệp contact.env. Anh ta tìm thấy 135 người dùng cơ sở dữ liệu và mật khẩu, 48 tài khoản người dùng e-mail có mật khẩu, 11 thông tin xác thực trực tiếp cho các nhà cung cấp thanh toán (như Stripe hoặc Paypal) 98 mã thông báo bí mật cho các API khác nhau và 128 bí mật ứng dụng. Khía cạnh nguy hiểm là mật khẩu và bí mật ở dạng không được mã hóa trong tệp the.env. Khi máy chủ web được định cấu hình sai và tệp this.env được web phân phối. máy chủ, bất cứ ai có thể. truy vấn dữ liệu này.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Quét 2,6 triệu tên miền cho các tệp .Env bị phơi nhiễm
sdcat HackerNoon profile picture

Sau lần quét đầu tiên cho các thư mục .git bị lộ, tôi đã thực hiện một lần quét khác cho các tệp .env bị lộ. Trong quá trình quét này, tôi đã tìm thấy hơn 200 tệp .env bị lộ. Bên cạnh cài đặt cấu hình vô hại, tôi đã tìm thấy 135 người dùng cơ sở dữ liệu và mật khẩu, 48 tài khoản người dùng e-mail có mật khẩu, 11 thông tin xác thực trực tiếp cho các nhà cung cấp thanh toán (như Stripe hoặc Paypal), 98 mã thông báo bí mật cho các API khác nhau và 128 bí mật ứng dụng (bí mật để tạo phiên một cách an toàn id, mã thông báo CSRF và mã thông báo JWT) và một số thông tin đăng nhập quản trị viên được mã hóa cứng.

TLDR : Đề phòng những sai sót trong quá trình triển khai. Không bao giờ để lộ tệp .env ẩn của bạn cho công chúng.

Tại sao tôi đã làm điều này?

Tôi là SDCat, một nhà phát triển phần mềm với óc tò mò, thích khám phá mọi nơi. Sau khi quét các thư mục .git bị lộ, tôi quyết định đi sâu hơn vào lỗ thỏ này. Và quyết định tôi sẽ kiểm tra các tệp .env bị lộ.

Trong bài đăng này, tôi mô tả tệp .env là gì, cách tôi quét các miền và một số thống kê về những gì được tìm thấy trong các tệp này. Việc phân tích dữ liệu này đôi khi tiết lộ nhiều thông tin xác thực cho các dịch vụ và tài khoản khác nhau.

tệp .env

Mọi phần mềm đều yêu cầu một số cấu hình và có nhiều cài đặt khác nhau. Trong trường hợp phần mềm người dùng, chẳng hạn như ứng dụng thư, những cài đặt này, như địa chỉ email, tên người dùng và mật khẩu, được yêu cầu từ người dùng trong lần khởi động phần mềm đầu tiên. Đối với phần mềm chạy trên máy chủ và thường được cài đặt tự động, không thể tương tác với người dùng. Đối với một số khung phần mềm, các cài đặt này có thể được chỉ định thông qua các biến môi trường và được định cấu hình trong tệp có tên .env. Các tệp .env là các tệp ẩn, vì vậy bạn không nhìn thấy các tệp này theo mặc định.

Ví dụ về tệp .env:

 ENV= "PRODUCTION"
LOG_LEVEL= "INFO"
SMTP_HOST= "email.example.com"
SMTP_PORT= 25
SMTP_USER= "[email protected]"
SMTP_PASS= "SuperSecurePassword2022"
SMTP_TLS= 1
SMTP_CONNECTION_TIMEOUT_SECONDS= 2
DB_HOST= "dbserver.example.com"
DB_DATABASE_NAME= "important_database"
DB_USER= "my-app-db-user"
DB_PASSWORD= "2022SuperVerySecurePassword"
PAYMENT_GATEWAY= "payment.example.com"
PAYMENT_SECRET= "super-secure-payment-api-secret"

Lưu ý: Chúng tôi khuyên bạn nên sử dụng các mật khẩu an toàn hơn những mật khẩu được đề cập trong các ví dụ ở trên.

Tại sao các tệp .env bị lộ lại thú vị / nguy hiểm?

Vì hầu hết mọi ứng dụng web đều truy cập vào cơ sở dữ liệu hoặc sử dụng một số API để giao tiếp, nên các thông tin xác thực này phải được chuyển cho ứng dụng. Nếu điều này được thực hiện bằng cách sử dụng tệp .env, thì thông tin đăng nhập ở dạng văn bản thuần túy trong tệp này. Khi máy chủ web được định cấu hình sai và tệp .env này được máy chủ web phân phối, bất kỳ ai cũng có thể truy vấn dữ liệu này. Để làm điều này, người ta có thể truy cập chỉ một URL bằng trình duyệt, chẳng hạn như: https://example.com/.env.

Khía cạnh nguy hiểm là mật khẩu và bí mật ở dạng không được mã hóa trong tệp .env.

Làm cách nào để quét 2,6 triệu miền để tìm các tệp .env bị lộ

Lấy các miền

Tôi đã chọn một quốc gia cho phép chuyển vùng DNS để lấy tất cả các miền của quốc gia này. Sẽ mất một khoảng thời gian để tải xuống tệp vùng hoàn chỉnh. Với một tập lệnh python đơn giản, tôi đã trích xuất các bản ghi NS và từ các bản ghi này tên miền.

Quy trình quét

Với một tập lệnh python khác, tôi đọc các miền và gửi yêu cầu tới http: // <domain> /.env . Tôi cũng đã kiểm tra http: // www. <domain> /.env, https: // <domain> /.env và https: // www. <domain> /.env.

Điều quan trọng là bỏ qua kiểm tra chứng chỉ SSL. Tôi biết rằng nhiều tệp được tìm thấy trên https nhưng có chứng chỉ không hợp lệ. Bằng cách bỏ qua các chứng chỉ SSL không hợp lệ, các thư mục này vẫn có thể được truy cập.

Số liệu thống kê

Tôi đã quét 2,6 triệu tên miền và tìm thấy:

  • 201 tệp .env
  • 135 tên người dùng trong ngân hàng dữ liệu có mật khẩu
  • 48 thông tin đăng nhập tài khoản email
  • 11 quyền truy cập vào các nhà cung cấp thanh toán (như Stripe hoặc Paypal)
  • 98 Khóa API cho các API khác nhau (ví dụ: API kiểm tra tín dụng)
  • 128 bí mật ứng dụng

Đây là kết quả chỉ của các miền chính. Hãy tưởng tượng điều gì sẽ xảy ra nếu chúng ta quét tất cả các tên miền phụ. Tôi chắc chắn bạn sẽ tìm thấy nhiều thứ hơn ở đó.

Làm cách nào để kiểm tra xem miền của tôi có bị ảnh hưởng hay không?

Bạn có thể quét các miền và miền phụ của mình bằng mẫu hạt nhân hoặc bạn có thể sử dụng dịch vụ như scan.nan.io để tự động kiểm tra các miền và miền phụ của mình để tìm các tệp nhạy cảm bị lộ.

Mang đi : Kiểm tra máy chủ và triển khai của bạn để không làm lộ tệp .env ẩn.

Cũng được xuất bản ở đây .