DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Danh sách các mã PHP dễ bị khai thác
Trong ứng dụng web, các lỗ hổng bắt nguồn từ việc người dùng có thể kiểm soát dữ liệu đầu vào của ứng dụng. Dữ liệu đầu vào này, sau đó được đưa vào các hàm để xử lý. Nếu người lập trình không có các cơ chế kiểm soát hoặc lọc dữ liệu đầu vào hợp lý, lỗ hổng có thể tồn tại trên ứng dụng web. Hầu hết các công cụ phân tích lỗ hổng trong ứng dụng web đều hoạt động dựa trên nguyên tắc tìm các hàm mà nhận dữ liệu đầu vào của người dùng sau đó phân tích xa hơn các cơ chế mà người viết ứng dụng kiểm soát các hàm này.
Trong topic này, mình sẽ liệt kê các hàm trong PHP mà nhận dữ liệu đầu vào của người dùng, nếu không có sự kiểm soát chặt chẽ sẽ dẫn đến lỗ hổng trong ứng dụng web. Khi bạn dùng các hàm này, hãy có cơ chế phù hợp để ngăn chặn các lỗ hổng có thể có của việc dùng hàm không đúng cách.
Command Execution
Ngoài hàm eval còn có các cách khác để thực thi mã PHP: các hàm như include() hoặc require() có thể được sử dụng để thực thi mã từ xa dưới dạng các lỗ hổng Local File Include và Remote File Include
Trong topic này, mình sẽ liệt kê các hàm trong PHP mà nhận dữ liệu đầu vào của người dùng, nếu không có sự kiểm soát chặt chẽ sẽ dẫn đến lỗ hổng trong ứng dụng web. Khi bạn dùng các hàm này, hãy có cơ chế phù hợp để ngăn chặn các lỗ hổng có thể có của việc dùng hàm không đúng cách.
Command Execution
- exec
- passthru
- system
- shell_exec
- `` (backticks)
- popen
- proc_open
- pcntl_exec
Ngoài hàm eval còn có các cách khác để thực thi mã PHP: các hàm như include() hoặc require() có thể được sử dụng để thực thi mã từ xa dưới dạng các lỗ hổng Local File Include và Remote File Include
- eval()
- assert()
- preg_replace('/.*/e',...)
- create_function()
- include()
- include_once()
- require()
- require_once()
- [imath]_GET['func_name']([/imath]_GET['argument']);
- [imath]func = new ReflectionFunction([/imath]_GET['func_name']); [imath]func->invoke(); or[/imath]func->invokeArgs(array());
- phpinfo
- posix_mkfifo
- posix_getlogin
- posix_ttyname
- getenv
- get_current_user
- proc_get_status
- get_cfg_var
- disk_free_space
- disk_total_space
- diskfreespace
- getcwd
- getlastmo
- getmygid
- getmyinode
- getmypid
- getmyuid