<
Tin Tức
-
Hội nghị các nhà phân phối imec 2018 - Heilbronn, Germany
Ngày 28/10/2018 Chi tiết
-
Thiết bị theo dõi nhiệt độ tự ghi theo Thông tư 02/2018 Bộ Y Tế
Ngày 01/04/2018 Chi tiết
-
Qui trình bảo quản vắc xin tiêm chủng mở rộng
Ngày 24/11/2015 Chi tiết
-
Đường đi của vắc xin từ tuyến tỉnh đến xã, phường
Ngày 17/10/2015 Chi tiết
Thống kê truy cập
- Lượt ghé thăm: 9,415,006
- Lượt truy cập: 12,812,985
- Đang xem: 2 (2 guest)
Bypass login là 1 kỹ thuật khá phổ biến mà hacker thích thử để tấn công website. Tỉ lệ thành công cũng khá cao, nhất là khi hacker gặp các website cùi bắp, như blog.itnet.vn chẳng hạn.
Bypass login là gì? Đây là 1 kỹ thuật mà hacker gõ 1 vài kí tự vớ va vở vẫn nào đó, nhằm vượt qua cơ chể kiểm tra của chương trình. Làm cho chương trình hiểu là chúng ta đang đường đường chính chính vào phần quản trị web.
Phân tích đăng nhập vào website
Khi xử lí thực hiện việc đăng nhập vào website của người dùng, Lập trình viên thông thường sẽ thực hiện 02 thao tác như sau:
1. Lấy thông tin người đăng nhập thông qua phương thức post, (ở đây, không có lập trình viên nào tồi đến nỗi sử dụng phương thức get đâu nhỉ?), ở đây chỉ có 2 trường dữ liệu là tài khoản đăng nhập và mật khẩu, ở đây mình tạm gọi là user, pass cho ... IT nhé.
2. Thực hiện câu lệnh SQL để kiểm tra user, pass có trùng trong dữ liệu hay không? nếu có thì ---> đăng nhập thành công và chuyển trang vào phần quản trị web để người dùng quản lí dữ liệu của mình.
Câu lệnh như sau: (Minh họa bằng code PHP và dữ liệu MySQL
Rõ ràng, xét về mặt logic thì đoạn chương trình trên hoạt động bình thường, cho kết quả đúng. Tuy nhiên, vấn đề không hề đơn giản như vậy. Hacker đầu óc nó quái dị (như mình chẳng hạn kaka ) - mình không chịu nhập vào những giá trị thông thường, mà hay nhập vào những thứ linh tinh vớ vẩn như sau:
Theo các bạn, chuyện gì sẽ xẩy ra?
Chúng ta kiểm tra từng bước nhé.
Dòng số 8 và dòng số 9, chương trình sẽ lấy 2 giá trị tương ứng, gán cho 2 biến $user và $pass.
Giá trị của chúng sẽ là:
$user = admin
$pass= ' OR '1'='1' --
Dòng số 10, 2 biến này sẽ được thay thế trong câu lệnh SQL
Câu lệnh SQL sẽ trở thành:
$sql = SELECT * FROM itnetvn_user WHERE user_name='admin' AND password='' OR '1'='1' --
Rõ ràng, trong mệnh đề OR, chỉ cần 1 đúng là tất cả đều đúng. Do đó, với câu lệnh này, chương trình sẽ lấy toàn bộ tài khoản có trong bảng: itnetvn_user.
Điều đó chứng tỏ dòng số 12 là mệnh đề đúng (ngoại trừ trường hợp bảng: itnetvn_user không có tài khoản nào )
Chuyện gì đến nó sẽ đến!
Xem thêm
Bài viết khác:
Sản phẩm Xem nhiều
-
36382
Nhiệt kế tự ghi... call 28937
Thiết bị ghi nhiệt... call 25669
Nhiệt ẩm kế tự... call 24014
Chỉ thị đông băng... call
-
22578
Nhiệt ẩm kế tự... call 21344
Nhiệt kế tự ghi... call 18440
Nhiệt kế tự ghi PicoLite call 17326
Nhiệt kế tự ghi... call
-
15817
Thiết bị ghi nhiệt... call 14738
Thiết bị ghi nhiệt... call 12568
Nhiệt ẩm kế tự... call 12480
Nhiệt ẩm kế điện... call
