+7

Hiểu rõ hơn về lỗ hổng website với Webgoat

Bảo mật thông tin đang là thách thức rất lớn đối với các chuyên gia trong ngành, bởi các lỗ hổng và phương thức khai thác lỗ hổng ngày càng phức tạp và tinh vi. Hầu hết chúng ta nghĩ việc hack các trang web như một hoạt động bất hợp pháp nhằm đánh cắp thông tin hoặc làm gián đoạn công việc kinh doanh của chủ sở hữu trang web. Nhưng điều gì xảy ra khi một trang web của bạn bị hack, không nằm trong các mục đích trên. Khả năng cao là kẻ tấn công sẽ dùng nguồn tài nguyên và uy tín của bạn trong nhiều tháng hoặc nhiều năm mà không bị phát hiện, bởi vì rất khó để nhận ra điều gì bất thường nếu nó không ảnh hưởng trực tiếp đến bạn. Trong bài viết này, mình sẽ giới thiệu một tool để thực hành những phương thức tấn công web, giúp bạn hiểu rõ hơn về các phương thức tấn công từ đó hạn chế các lỗ hổng trong quá trình xây dựng website.

1. Các phương thức tấn công

Một số kỹ thuật tấn công web mà hacker hay sử dụng để lấy cắp thông tin, phá hỏng dữ liệu trên hệ thống:

XSS (Cross-Site Scripting): Là một trong những kĩ thuật tấn công phổ biến nhất hiện nay, đồng thời nó cũng là một trong những vấn đề bảo mật quan trọng đối với các nhà phát triển và cả những người sử dụng web. XSS tấn công bằng cách chèn vào các website động những thẻ HTML hay những đoạn scrip nguy hiểm có thể gây hại cho những người sử dụng khác. Trong đó, những đoạn mã nguy hiểm được chèn vào hầu hết được viết bằng các Client-Site Scrip như JavaScrip, Jscrip.. và cũng có thể là các thẻ HTML.

CSRF (Cross-site Request Forgery): CSRF tấn công bằng cách sử dụng quyền chứng thực của người dùng đối với một website. Nó tấn công vào người dùng, dựa vào đó hacker có thể thực thi những thao tác phải yêu cầu sự chứng thực.

SQL injection: SQL Injection lợi dụng những lỗ hổng về câu truy vấn lấy dữ liệu của những website không an toàn, đây là một kỹ thuật tấn công rất phổ biến và sự thành công của nó cũng tương đối cao.

2. Webgoat

Webgoat là gì? Webgoat là một server application được cố tình lập trình có rất nhiều lỗi bảo mật. Thông qua đó, nó hướng dẫn người dùng thực hành những kỹ thuật tấn công ở trên để hiểu rõ hơn bản chất về lỗ hổng mà web applications thường gặp. Cài đặt

Webgoat là một ứng dụng JAVA nên muốn cài đặt thì trước hết máy phải cài đặt JAVA Bạn dowload và cài đặt JAVA cho máy của mình tại đây: https://www.java.com/en/download/ Bây giờ ta sẽ cài đặt webgoat, đơn giản thôi :slight_smile:

B1: Download webgoat về: https://github.com/WebGoat/WebGoat
B2: Chạy file .jar vừa tải về (đối với window). Đối với linux thì chạy qua cmd.
B3: Mở thư mục chưa file .jar rồi chạy lệnh: java -jar [Tên tệp jar]
B4: Mở browser, truy cập  http://localhost:8080/WebGoat 
+ Nhập: user: guest pass: guest nếu là Webgoat User
+ Nhập: user: webgoat pass: webgoat nếu là Webgoat Admin

3. Tấn công String SQL injection

Webgoat giúp bạn hiểu rõ các phương thức tấn công thông qua việc đưa ra những bài toán về bảo mật và đi kèm là gợi ý cho từng bài nên đừng lo không giải được mà nản nha ^^ Sau đây mình sẽ làm demo 1 bài toán về tấn công String SQL injection. Như hình trên, câu lệnh SQL được sử dụng là:
SELECT * FROM user_data WHERE last_name = 'Your Name' Trong đó "Your Name" do người dùng input và không có bất cứ ràng buộc nào, cho phép nhập tự do. Quá trình tấn công như sau: Input: Erwin' OR '1' = '1 Ta có câu SQL: SELECT * FROM user_data WHERE last_name = Erwin' OR '1' = '1' Khi câu lệnh này được thực thi, ta có bảng kết quả sau: Bằng cấu lệnh trên ta có thể xem thông tin của tất cả nhân viên khi không biết tên ai trong danh sách thay vì chỉ một người dùng ta biết tên. Điều này đặc biệt nguy hiểm nếu kẻ tấn công dùng những thông tin này vào mục đích xấu như: đánh cắp email, vay tín dụng, thậm chí hack tài khoản ngân hàng.

Ví dụ trên chỉ là một bài tập nhỏ trong loạt bài của Webgoat. Khi làm xong bạn sẽ thấy dấu tích nhỏ màu xanh bên phải side bar. Hoàn thành loạt bài này là có kha khá kiến thức về các lỗ hổng của web rồi.😎

Nguồn tham khảo: https://viblo.asia/p/mot-so-ky-thuat-tan-cong-web-zoZVRg0pMmg5 http://fallensnow-jack.blogspot.com/2011/08/webgoat-string-sql-injection.html https://github.com/rinodung/webgoat/issues/2


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí