Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Injection Attack

    🔥 Injection – Sát thủ thầm lặng trong thế giới ứng dụng web 🔥

    Chào anh em IT! Hôm nay mình chia sẻ phần 2 của chuỗi Top 10 lỗ hổng OWASP – một trong những danh sách "must-know" với bất kỳ ai làm trong lĩnh vực phát triển và bảo mật ứng dụng web. Bài này sẽ xoáy sâu vào các lỗ hổng nguy hiểm hàng đầu, với Injection đứng chễm chệ ở vị trí số 1.
    🚨 Injection là gì? Vì sao lại nguy hiểm?


    Injection xảy ra khi kẻ tấn công chèn dữ liệu độc hại vào luồng xử lý đầu vào của ứng dụng – như câu lệnh SQL, LDAP, XML, hay thậm chí là mã hệ thống.

    Bạn có thể tưởng tượng đơn giản thế này:
    “Thay vì nhập tên đăng nhập là Alice, hacker nhập vào đoạn như: Alice' OR '1'='1.”

    boom! – nếu backend không xử lý đầu vào đúng cách, hacker có thể qua mặt xác thực, lấy dữ liệu, thậm chí xóa cả database!
    🔍 Ví dụ đơn giản: SQL Injection


    Giả sử ứng dụng backend có đoạn SQL sau để kiểm tra tên người dùng:
    sql

    Copy


    Edit


    SELECT * FROM users WHERE username = '$input';



    Nếu input là admin' --, thì truy vấn trở thành:
    sql

    Copy


    Edit


    SELECT * FROM users WHERE username = 'admin' -- ';



    Dấu -- là comment trong SQL => phần sau bị bỏ qua, và hacker đăng nhập vào với tư cách admin mà không cần mật khẩu!
    😱 Không chỉ SQL – còn có LDAP, XML, v.v...
    • LDAP Injection: Hacker có thể chèn filter LDAP để liệt kê tất cả user, thay đổi password hoặc cấp thêm quyền cho user giả mạo.
    • XML External Entity (XXE): Nếu ứng dụng đọc file XML mà không chặn tham chiếu bên ngoài, hacker có thể yêu cầu ứng dụng đọc file nội bộ như /etc/passwd!

    ✅ Phòng chống thế nào?
    1. Không bao giờ tin dữ liệu từ người dùng – kể cả cookie, header, query string!
    2. Dùng prepared statements / parameterized queries. Đừng nối chuỗi SQL bằng tay.
    3. Validate chặt đầu vào: ví dụ, nếu bạn chỉ cần chữ thường, đừng chấp nhận ký tự khác. Không phải "cho phép tất cả rồi lọc ra", mà là "chỉ cho phép cái cần dùng".
    4. Escape và encode đúng cách khi đầu vào được sử dụng trong HTML, XML, hay SQL.

    🧨 Broken Authentication – Khi hacker có chìa khoá cửa chính


    Lỗ hổng này liên quan đến xác thực yếu – ví dụ:
    • Mật khẩu mặc định không đổi
    • Session ID đoán được
    • Token lưu trữ không an toàn

    Nếu bị khai thác, hacker sẽ “đăng nhập” thành công như người dùng thật. Và từ đó, mọi chuyện tệ hại đều có thể xảy ra.
    🧊 Sensitive Data Exposure – Lộ lọt dữ liệu nhạy cảm


    Khi dữ liệu không được mã hóa (at rest hoặc in transit), bạn đang đánh cược với số phận.

    Ví dụ:
    • Lưu mật khẩu dạng text (plaintext)? Game over.
    • Không dùng HTTPS? Ai đó có thể sniff được traffic.

    Và nếu hacker lấy được danh sách user, password, email... thì rất có thể bạn bị phạt nặng theo luật như GDPR, hoặc bị lợi dụng để tấn công chuỗi (credential stuffing, spear phishing...).
    🧟‍♂️ XXE – External Entity Attack


    Nếu bạn load file XML từ người dùng, và không tắt external entity, hacker có thể ép ứng dụng của bạn đọc file nội bộ, hoặc làm chậm hệ thống bằng các kỹ thuật như Billion Laughs Attack.

    Ví dụ: hacker gửi XML có chứa đường dẫn file:///etc/passwd, và hệ thống backend đọc file đó => lộ toàn bộ danh sách user Linux.

    💡 Kết luận: 3 bài học nằm lòng
    1. Đừng bao giờ tin đầu vào từ người dùng!
    2. Luôn kiểm tra, lọc và xử lý dữ liệu đúng cách.
    3. Cập nhật kiến thức OWASP Top 10 thường xuyên – vì hacker không ngủ!


    Bạn đang lập trình web, viết API hay quản trị hệ thống? Injection và những lỗi OWASP Top 10 là kiến thức sinh tồn bắt buộc phải nắm vững. Đừng để một đoạn code ngây thơ làm sụp cả hệ thống!

    👉 Nếu bạn muốn mình tiếp tục chia sẻ các phần tiếp theo của OWASP Top 10 (như misconfiguration, XSS, insecure deserialization...), để lại comment hoặc inbox nhé!

    Bạn đã từng gặp tình huống nào liên quan đến injection chưa? Comment chia sẻ nhé! 💬👇
    Click image for larger version

Name:	SQLINjection.jpg
Views:	10
Size:	200.0 KB
ID:	430101
    Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X