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

Bảo mật tin tức đang là thử thách rất lớn đối với các chuyên viên 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 như ta nghĩ việc hack các website như một làm việc bất hợp pháp nhằm đánh cắp tin tức hoặc làm gián đoạn công việc kinh doanh của chủ có website. Nhưng điều gì diễn ra khi một website của bạn bị hack, không nằm trong các mục đích trên. tuyệt kỹ cao là kẻ tấn công sẽ dùng nguồn tài nguyên và chất lượng của bạn trong nhiều tháng hoặc nhiều năm mà không bị phát giác, 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ừ đó giới hạn các lỗ hổng trong quá trình tạo dựng web.

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

một vài kỹ thuật tấn công web mà hacker hay dùng để lấy cắp tin tức, phá hỏng data 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 chuyện bảo mật trọng yếu đối với các nhà phát triển web và cả những người sử dụng web. XSS là một kỹ thuật tấn công bằng cách chèn vào các web độ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 như đượ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):
Là kỹ thuật tấn công bằng cách dùng quyền chứng thực của người sử dụng đối với một web. Nó là kỹ thuật tấn công vào người sử 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à một kỹ thuật lợi dụng những lỗ hổng về câu truy vấn lấy data của những web 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ó nhiều lỗi bảo mật. Thông từ đó, nó chỉ dẫn người sử 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 app 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/
giờ đây ta sẽ cài đặt webgoat, dễ hiểu thôi

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, vào web  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 thử thách về bảo mật và đi kèm là gợi ý cho đã có lần 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 dùng là:
SELECT * FROM user_data WHERE last_name = ‘Your Name’
Trong đó "Your Name" do người sử dụng input và không có bất cứ ràng buộc nào, cấp quyền nhập thoải mái. 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 tin tức của tất cả nhân lực khi không biết tên ai trong list thay vì chỉ một người sử dụng ta biết tên. Điều này đặc sắc nguy hiểm nếu kẻ tấn công dùng những tin tức này vào mục đích xấu như: đánh cắp email, vay tín dụng, không chỉ vậy hack account nhà bank.

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

Nguồn viblo.asia