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
Comments[ 0 ]
Đăng nhận xét