PHP风险函数

PHP函数非常多,但是使用不当会造成危险。以下列出PHP中存在风险的函数,可以用作PHP代码安全审计!
命令执行:
| 函数 | 解释 | 
|---|---|
| exec | 不输出但返回结果最后一行,第二个参数储存全部结果 | 
| passthru | 输出不返回结果 | 
| system | 返回并输出结果 | 
| shell_exec | 返回但不输出结果 | 
| `` | 反引号,作用同shell_exec | 
| popen | 执行命令返回资源号 | 
| proc_open | 同popen,更高权限 | 
| pcntl_exec | 执行程序 | 
代码执行:
| 函数 | 解释 | 
|---|---|
| eval | 执行代码 | 
| assert | 判断表达式是否成立 | 
| preg_replace | 带/e修正符时,第二个参数将被当作代码执行 | 
| create_function | 创建一个函数运行 | 
| include | 能引用远程代码 | 
| include_once | 能引用远程代码 | 
| require | 能引用远程代码 | 
| require_once | 能引用远程代码 | 
| $_GET[‘func’]($_GET[‘param’]) | 执行函数 | 
函数调用:
| 函数 | 调用参数位置 | 
|---|---|
| ob_start | 0 | 
| array_diff_uassoc | -1 | 
| array_diff_ukey | -1 | 
| array_filter | 1 | 
| array_intersect_uassoc | -1 | 
| array_intersect_ukey | -1 | 
| array_map | 0 | 
| array_reduce | 1 | 
| array_udiff_assoc | -1 | 
| array_udiff_uassoc | -1, -2 | 
| array_udiff | -1 | 
| array_uintersect_assoc | -1 | 
| array_uintersect_uassoc | -1, -2 | 
| array_uintersect | -1 | 
| array_walk_recursive | 1 | 
| array_walk | 1 | 
| assert_options | 1 | 
| uasort | 1 | 
| uksort | 1 | 
| usort | 1 | 
| preg_replace_callback | 1 | 
| spl_autoload_register | 0 | 
| iterator_apply | 1 | 
| call_user_func | 0 | 
| call_user_func_array | 0 | 
| register_shutdown_function | 0 | 
| register_tick_function | 0 | 
| set_error_handler | 0 | 
| set_exception_handler | 0 | 
| session_set_save_handler | 0, 1, 2, 3, 4, 5 | 
| sqlite_create_aggregate | 2, 3 | 
| sqlite_create_function | 2 | 
信息泄漏:
| 函数 | 说明 | 
|---|---|
| phpinfo | PHP配置信息 | 
| posix_mkfifo | 检查某目录是否是当前用户所有 | 
| posix_getlogin | 获取登陆用户名 | 
| posix_ttyname | 获取控制台名称 | 
| getenv | 获取环境变量 | 
| get_current_user | 获取当前用户 | 
| proc_get_status | 获取proc_open信息 | 
| get_cfg_var | 获取PHP配置 | 
| disk_free_space | 获取硬盘可用空间 | 
| disk_total_space | 获取硬盘总空间 | 
| diskfreespace | 同disk_free_space | 
| getcwd | 获取当前活动目录 | 
| getlastmod | 获取最后修改时间 | 
| getmygid | 获取脚本GroupID | 
| getmyinode | 获取当前脚本inode | 
| getmypid | 获取PHP线程ID | 
| getmyuid | 获取当前脚本UID | 
文件操作:
| 函数 | 备注 | 
|---|---|
| fopen | |
| tmpfile | |
| bzopen | |
| gzopen | |
| SplFileObject | |
| chgrp | |
| chmod | |
| chown | |
| copy | |
| file_put_contents | |
| lchgrp | |
| lchown | |
| link | |
| mkdir | |
| move_uploaded_file | |
| rename | |
| rmdir | |
| symlink | |
| tempnam | |
| touch | |
| unlink | |
| imagepng | 第二个参数是路径 | 
| imagewbmp | 第二个参数是路径 | 
| image2wbmp | 第二个参数是路径 | 
| imagejpeg | 第二个参数是路径 | 
| imagexbm | 第二个参数是路径 | 
| imagegif | 第二个参数是路径 | 
| imagegd | 第二个参数是路径 | 
| imagegd2 | 第二个参数是路径 | 
| iptcembed | |
| ftp_get | |
| ftp_nb_get | |
| file_exists | |
| file_get_contents | |
| file | |
| fileatime | |
| filectime | |
| filegroup | |
| fileinode | |
| filemtime | |
| fileowner | |
| fileperms | |
| filesize | |
| filetype | |
| glob | |
| is_dir | |
| is_executable | |
| is_file | |
| is_link | |
| is_readable | |
| is_uploaded_file | |
| is_writable | |
| is_writeable | |
| linkinfo | |
| lstat | |
| parse_ini_file | |
| pathinfo | |
| readfile | |
| readlink | |
| realpath | |
| stat | |
| gzfile | |
| readgzfile | |
| getimagesize | |
| imagecreatefromgif | |
| imagecreatefromjpeg | |
| imagecreatefrompng | |
| imagecreatefromwbmp | |
| imagecreatefromxbm | |
| imagecreatefromxpm | |
| ftp_put | |
| ftp_nb_put | |
| exif_read_data | |
| read_exif_data | |
| exif_thumbnail | |
| exif_imagetype | |
| hash_file | |
| hash_hmac_file | |
| hash_update_file | |
| md5_file | |
| sha1_file | |
| highlight_file | |
| show_source | |
| php_strip_whitespace | |
| get_meta_tags | 
以上函数如果要产生更大的影响需要配合以下输入型函数
| 函数 | 描述 | 
|---|---|
| $_GET | |
| $_POST | |
| $_COOKIE | |
| $_REQUEST | |
| $_FILES | |
| $_SERVER | |
| $_ENV | |
| $HTTP_GET_VARS | |
| $HTTP_POST_VARS | |
| $HTTP_COOKIE_VARS | |
| $HTTP_REQUEST_VARS | |
| $HTTP_POST_FILES | |
| $HTTP_SERVER_VARS | |
| $HTTP_ENV_VARS | |
| $HTTP_RAW_POST_DATA | |
| $argv | |
| $argc | |
| get_headers | |
| runkit_superglobals | |
| import_request_variables | 
系统常量
| 常量 | 解释 | 
|---|---|
| HTTP_ACCEPT | |
| HTTP_ACCEPT_LANGUAGE | |
| HTTP_ACCEPT_ENCODING | |
| HTTP_ACCEPT_CHARSET | |
| HTTP_CONNECTION | |
| HTTP_HOST | |
| HTTP_KEEP_ALIVE | |
| HTTP_REFERER | |
| HTTP_USER_AGENT | |
| HTTP_X_FORWARDED_FOR | |
| PHP_AUTH_DIGEST | |
| PHP_AUTH_USER | |
| PHP_AUTH_PWD | |
| AUTH_TYPE | |
| QUERY_STRING | |
| REQUEST_URI | |
| PATH_INFO | |
| ORIG_PATH_INFO | |
| PATH_THANSLATED | |
| PHP_SEFT | 
- 本文标题:PHP风险函数
 - 创建时间:2013-10-05 16:54:26
 - 本文链接:posts/5177.html
 - 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!