Rate this post

Special Element Injection là một kiểu tấn công khai thác điểm yếu liên quan đến các từ dành riêng và các ký tự đặc biệt.

Mọi ngôn ngữ lập trình và hệ điều hành đều có các ký tự đặc biệt được coi là các từ dành riêng cho nó. Tuy nhiên, khi một ứng dụng nhận được dữ liệu như đầu vào của người dùng, có thể quan sát hành vi không mong muốn trong ứng dụng khi phân tích cú pháp thông tin này. Điều này có thể dẫn đến tiết lộ thông tin, kiểm soát truy cập và bỏ qua ủy quyền, chèn mã và nhiều biến thể khác.

Các bài viết liên quan:

Theo các ký tự được sử dụng, cuộc tấn công Special Element Injection có thể được thực hiện bằng cách sử dụng các ký hiệu macro, dấu phân cách tham số và ký tự null / byte null, trong số những ký tự khác.

Các ví dụ

Ví dụ 1 – Ký hiệu macro

Cuộc tấn công Chèn phần tử đặc biệt dựa trên các ký hiệu macro có thể được thực hiện bằng cách chèn các ký hiệu macro vào các trường đầu vào hoặc tệp cấu hình người dùng. Một ví dụ đã biết về cuộc tấn công này có thể được trình bày bằng cách khai thác lỗ hổng trên máy chủ Quake II 3.20 và 3.21. Lỗ hổng này cho phép người dùng từ xa truy cập vào các biến bảng điều khiển máy chủ (cvar), danh sách thư mục và thực thi các lệnh quản trị của máy khách trên Máy chủ Quake II.

Trên ứng dụng này, các cvars được máy khách và máy chủ sử dụng để lưu trữ thông tin cấu hình và trạng thái. Có thể truy cập cvar bằng cú pháp “$ name”, trong đó “name” là tên của biến console sẽ được mở rộng.

Tuy nhiên, có thể sửa đổi bảng điều khiển máy khách để gửi một lệnh độc hại đến máy chủ, chẳng hạn như “say $ rcon_password” để cố gắng khám phá các biến $ rcon_password của máy chủ nội dung.

Bằng cách phát hiện ra mật khẩu, có thể thực hiện các hành động khác trên máy chủ, như khám phá cấu trúc thư mục, thực thi lệnh và trực quan hóa nội dung tệp.

Ví dụ 2 – Dấu phân cách tham số

Parameter Delimiter là một biến thể khác của Special Element Injection. Ví dụ dưới đây minh họa cách thức tấn công này có thể được thực hiện bằng cách sử dụng một lỗ hổng được tìm thấy trên hệ thống đăng tải PHP version.two.

Ứng dụng này có một lỗ hổng nguy hiểm cho phép chèn dữ liệu vào các trường (tên người dùng, mật khẩu, địa chỉ email và đặc quyền) của tệp “mem.php”. Tập tin này có nhiệm vụ quản lý người dùng ứng dụng.

Ví dụ về tệp “mem.php” được hiển thị bên dưới, trong đó người dùng Jose có đặc quyền quản trị và Alice chỉ có quyền truy cập của người dùng:

<? Jose|12345678|jose@attack.com|admin| Alice|87654321|alice@attack.com|normal| ?>

Khi người dùng muốn chỉnh sửa hồ sơ của họ, họ phải sử dụng tùy chọn “chỉnh sửa tài khoản” trong trang “index.php” và nhập thông tin đăng nhập của họ. Tuy nhiên, sử dụng “|” dưới dạng dấu phân cách tham số trên trường email theo sau là hồ sơ “quản trị viên”, người dùng có thể nâng đặc quyền của họ lên quản trị viên. Ví dụ:

Tên người dùng: Alice Mật khẩu: 87654321 Email: alice@attack.com | admin |

Thông tin này sẽ được ghi lại trong tệp “mem.php” như sau:

Alice | 87654321 | alice@attack.com | admin | normal |

Lần tiếp theo người dùng Alice đăng nhập, ứng dụng sẽ nhận được tham số “| admin |” dưới dạng hồ sơ người dùng, do đó nâng cao đặc quyền của Alice lên hồ sơ quản trị viên.

Leave a Reply

Call now
%d bloggers like this: