Kí tự rỗng

Một phần của tài liệu Đánh giá độ bảo mật Website trường CĐ CNTT hữu nghị Việt Hàn (Trang 32 - 34)

2.3.3.1 Kỹ thuật tấn công

Nhiều ứng dụng WEB thường sử dụng ngôn ngữ lập trình như C, java để tạo modul xử lý những công việc như thao tác với những dữ liệu nhập vào từ người dùng. Hacker lợi dụng kí tự kết thúc chuỗi sẽ thêm vào trong những đoạn code nhằm đánh lừa các ứng dụng.

Ví dụ: Giả sử đưa vào chuỗi như thế này “123\0456” thì qua chương trình lập trình bằng C, chuỗi này có thể bị cắt ngắn còn lại là 123 vì C xem \0 là dấu hiệu kết thúc chuỗi. Đây cũng chính là điểm yếu mà Hacker lợi dụng vào, mục đích chính của nó chính là lợi dụng điều này có thể vượt qua các khâu kiểm tra nội dung chuỗi.

2.3.3.2 Một số biện pháp bảo mật khắc phục

Kiểm tra chấp nhận những dữ liệu hợp lệ. Loại bỏ những kí tự có ý nghĩa là cắt chuỗi hay tự động xuống hàng, đối với C thì ‘\’ nói riêng còn đối với lập trình nói chung.

2.3.4Thao tác trên URL

2.3.4.1 Kỹ thuật tấn công

Khi nhập một form HTML thì kết quả sẽ được gởi đến máy chủ thông qua 2 cách: GET hay POST. Nếu dùng GET, thì tất cả các tên biến và giá trị của nó xuất hiện trong chuỗi URL.

Ví dụ : Trang web cho phép thành viên đăng nhập và thanh URL

http://www.nganhangtructuyen.com/example?user=thanhluan&pass=123

User: tên tài khoản người dùng. Pass: mật khẩu của người dùng.

Ví dụ 2: Giả sử muốn thay đổi mật khẩu của người quản trị

http://www.nganhangtructuyen.com/example?user=admin&newpass=123456

User: tên tài khoản người dùng.

Newpass: thay đổi mật khẩu của người dùng.

Hình 2.9 Ví dụ kỹ thuật tấn công thay đổi tham số URL.

Qua ví dụ trên có thể thấy được Hacker có thể lợi dụng lỗ hổng này để thay đổi mật khẩu bất kì người dùng nào kể cả người quản trị viên. Chính vì thế mà trong các form đăng nhập thường thì sử dụng phương thức truyền là POST. POST cũng giống như GET nhưng nó khác ở chỗ GET thì hiện các thông tin lên URL rồi truyền đi còn POST thì lại chạy ngầm, gởi các thông tin ngầm đến cho máy chủ web nên mắt thường không thể thấy được nhưng nói như vậy là Hacker không thể biết được, chỉ cần nó sử dụng các phần mềm quét thì có thể thấy được. Tuy GET bảo mật kém nhưng hiện đang

được sử dụng rất rộng rãi... và chỉ khi nào cần đăng nhập hay gởi các thông tin quan trọng thì mới sử dụng phương thức POST.

2.3.4.2 Một số biện pháp bảo mật khắc phục

Ứng dụng sử dụng cơ chế hàm băm. Sau khi người dùng chứng thực thành công với một tài khoản, ứng dụng sẽ sinh ra một khoá tương ứng. Khoá này sẽ được lưu trên máy chủ cùng với biến tài khoản trong đối tượng hàm băm. Mỗi khi người dùng kết nối đến ứng dụng, khoá và tài khoản này sẽ được gửi đi và được so sánh với khoá và tài khoản trong hàm băm. Nếu tương ứng với bản ghi trong dữ liệu thì hợp lệ. Còn nếu không thì máy chủ biết rằng người dùng đã thay đổi URL.

Ngoài ra, với những thông tin có giá trị, cần mã hoá thông tin này trước khi cho hiển thị trên trình duyệt để tránh Hacker có thể sửa đổi tùy ý.

Một phần của tài liệu Đánh giá độ bảo mật Website trường CĐ CNTT hữu nghị Việt Hàn (Trang 32 - 34)