Đề Tài: Tấn công XSS và SQL Injection
Nhóm học viên thực hiện:
1.
Ngô Hoàng Thành
2.
Phạm Tất Thành
3.
Nguyễn Xuân Thịnh
4.
Trần Văn Nậm
5.
Luyện Thanh Tuấn
6.
Trần Hữu Thảo
Tấn công XSS
XSS – Cross Site Script
Khái niệm XSS
Phân loại
Mục đích của XSS
Cách thức hoạt động của XSS
Các bước thực hiện tấn công XSS
Phòng chống XSS
Khái niệm XSS
XSS (Cross-site script) là một kỹ thuật tấn công bằng cách chèn vào các trang
web động (PHP, ASP, JSP…) những thẻ HTML hoặc những đoạn script
(những đoạn mã lệnh thực thi trực tiếp trên trình duyệt) nhằm mục đích thiết
lập hoặc đánh cắp những thông tin quan trọng trên máy người dùng.
Phân loại
Stored XSS
–
XSS được đưa lên lưu trữ tại web server, người dùng bị tấn công khi truy cập những
nội dung này.
Reflected XSS
–
Attacker gửi trực tiếp cho người dùng URL hoặc các thẻ HTML chứa mã độc để
người dùng kết nối với server thông qua chúng.
Nhắc lại cơ chế dynamic web page
Cách thức hoạt động của XSS
Ví dụ :
Truy cập trạng web
–
http::/Trang_web/file_name?query=<script>Mã độc</script>
HTML trả về
…
Results for <?php echo $_GET[query] ?> : ...
…
Web browser của client sẽ chạy đoạn mã nằm trong tag <script>
Stored XSS
Stored XSS
Reflected XSS
Tạo email giả có chứa URL đến người dùng
–
http::/Trang_web/file_name?query=<script>Mã độc</script>
Người dùng tin tưởng vào nội dung email và click vào URL
Web server sẽ trả về trang HTML có chứa mã độc.
Reflected XSS
Các thao tác tấn công XSS
Thao tác 1 : Tìm lỗ hổng XSS
–
Sử dụng tool (Vd : Web Vulnerability Scanner)
–
Thực hiện thủ công
–
Bước 1 : Mở website
–
Bước 2 : Xác địch thành phần có khả năng tấn công XSS, nhập vào các dữ liệu đặc
biệt.
–
Bước 3 : Xác minh thành phần có lỗ hổng XSS hay không bằng những dữ liệu trả về
của server
Các thao tác tấn công XSS
Thao tác 1 : Tìm lỗ hổng XSS (tiếp)
–
Bước 4 : Thử nhập những đoạn script đơn giản vào thành phần có khả năng có lỗ
hổng XSS
–
Bước 5 : Chuẩn bị tấn công
Các thao tác tấn công XSS
Thao tác 2 : Tấn công XSS
–
Tùy vào lỗ hổng XSS mà ta có thể lên kế hoạch tấn công XSS khác nhau.
Cách phòng chống XSS
Đối với web developer
–
Lọc dữ liệu : Xác định tính hợp lý của dữ liệu, loại bỏ các ký tự đặc biệt.
–
Mã hóa dữ liệu : mã hóa các dữ liệu đầu vào và đầu ra để tránh những đoạn mã nguy
hiểm.
Ảnh hưởng hiệu năng hệ thống, cần chú ý đến những dữ liệu đã được mã hóa trước.
Cách phòng chống XSS
Đối với người dùng
–
Cảnh giác với những đường link “lạ”
–
Không cho phép trình duyệt chạy những đoạn script trong thẻ HTML
Hiểu rõ về XSS ta sẽ biết được phương pháp phòng chống XSS
Tấn công SQL Injection
Khái niệm
Sql Injection (SQLi) là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ
hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông
báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các
câu lệnh SQL bất hợp pháp.
Hướng khai thác
Thông qua User input
Thông qua Cookies
Thông qua các biến Server
Second-order injection
Các kỹ thuật khai thác
Union query based
Batched query
Order by clause
Các bước khai thác thông tin
Phát hiện lỗi Sql Injection
Thu thập thông tin về hệ quản trị CSDL
Xác định số lượng cột trong mệnh đề Select
Xác định thông tin
Cách phòng chống
Ngay từ khái niệm, chúng ta đã có thể biết được cách phòng chống hiệu quả
Sql Injection chính là việc kiểm tra kỹ càng tham số đầu vào. Những tham số
mà từ đó người lập trình website sử dụng để build lên câu truy vấn tới cơ sở
dữ liệu.
Công việc kiểm tra tham số đầu vào (áp dụng phòng tránh lỗi Sql Injection)
nên được tiến hành theo nhiều tầng