CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Mục lục

Trang chủBlogPHP Object injection trên...
An toàn thông tin
DevSecOps

PHP Object injection trên WordPress – Phần I

2 phút đọc26/02/2014
CyStack Author
Sơn Võ

A CyStack Team Member - Simplifying Cybersecurity From A to Z

0 lượt xem
Reading Time: 2 minutes

PHP object injection như chúng ta đã biết những đối tượng trong ngôn ngữ lập trình nói chung là một thực thể sống, chúng tồn tại trên bộ nhớ trong khi chương trình đang được thực thi. Vậy nếu ta muốn lưu trữ chúng lại để có thể tái sử dụng lại nó lần sau thì làm thế nào? Hàm serialize() trong PHP sẽ giúp ta làm được điều này. Hàm này chịu trách nhiệm dump một đối tượng (object) ra thành một chuỗi (string) dạng O:7:"MyClass":2:{s:3:"foo";i:10;s:3:"bar";i:20} .

Và đương nhiên cần hàm unserialize() để chuyển từ một chuỗi đã được serialized về object ban đầu. Khi sử dụng hàm unserialize() nếu chúng ta không kiểm soát tốt dữ liệu truyền vào hàm này tốt thì sẽ rất dễ dàng bị hacker tấn công thông qua lỗi PHP object injection. Để hiểu rõ hơn chúng ta hãy cùng xem xét ví dụ sau: Đầu tiên website của bạn nhận vào biến $_GET['in'], khi nhận được giá trị của biến này bạn tiến hành thực thi đoạn code sau  echo unserialize($_GET['in']); Giả sử một hacker viết một đoạn mã khai thác như sau :

PHP Object injection trên WordPress
PHP Object injection trên WordPress
Kết quả trả về của hàm serialize($foo) là chuỗi O:3:"Foo":1:{s:4:"file";s:11:"/etc/passwd";} sẽ được hacker truyền vào biến $_GET['in'] theo request sau: http://yoursite.com?in=O:3:"Foo":1:{s:4:"file";s:11:"/etc/passwd";}. Có lẽ bạn sẽ hình dung được kết quả trả về của request trên:). Với lỗi này Hacker có thể dễ dàng thực thi những code để khai thác website của bạn. Lời khuyên dành cho bạn ở đây đó là kiểm soát kĩ lưỡng data đi vào hàm unserialize() để loại bỏ những dữ liệu fuzz bất hợp lệ.

Nguồn : http://tdsec.wordpress.com/2014/02/25/php-object-injection-tren-wordpress-phan-i/

Về tác giả

Sơn Võ
Sơn VõA CyStack Team Member - Simplifying Cybersecurity From A to Z

A CyStack Team Member - Simplifying Cybersecurity From A to Z

Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn

Thảo luận (0)

Đăng nhập để thảo luận

Bài viết liên quan