总体来讲,对php webshell和一句话木马的查杀,主要从三个方面进行
1.Shell特征
2.PHP安全方面的函数和变量以及安全配置选项
3.语法检测
首先,基于Shell特征,此方法主要针对base64_decode编码与gzinflate等参考特征库与匹配算法:Web Shell Detector v1.51,当前共有296个特征/emposha/PHP-Shell-Detector/zipball/master可同时参考其他开源软件特征库
其次,对涉及PHP安全方面的函数和安全配置选项进行了归类,参照了很多文章,博客以及开源工具,在此表示感谢。
1.include/require/require_once/include_once/file_get_contents//文件包含2.exec/system/popen/passthru/proc_open/pcntl_exec/shell_exec/curl_exec/curl_multi_exec/``/escapeshellcmd/pcntl_exec//系统命令执行3.eval/preg_replace/assert/call_user_func/call_user_func_array/create_function/ob_start/array_map//代码执行4._GET/_POST/_COOKIE/_SERVER/_REQUEST/_ENV/GLOBALS/php://input/getenv/ //数据传递5.session/cookie6.extract/parse_str/mb_parse_str/import_request_variables/unserialize7.copy/rmdir/chmod/delete/fwrite/fopen/readfile/fpassthru/move_uploaded_file/file_put_contents/unlink/upload/opendir/fgetc/fgets/ftruncate/fputs/fputcs//文件操作8.select/insert/update/delete/order by/groupby/limit/in(/stripslashes/urldecode//数据库操作9.confirm_phpdoc_compiled/mssql_pconnect/mssql_connect/crack_opendict/snmpget/ibase_connect10.echo/print/printf/vprintf/document.write/document.innerHTML/document.innerHtmlText11.phpinfo/highlight_file/show_source/parse_ini_file//敏感信息,源代码泄露12.iconv/mb_convert_encoding13.base64_decode,gzinflate,gzuncompress,gzdecode,str_rot13//代码加密
其他:
usort(), uasort(), uksort() array_filter() array_reduce() array_diff_uassoc(), array_diff_ukey() array_udiff(), array_udiff_assoc(), array_udiff_uassoc() array_intersect_assoc(), array_intersect_uassoc() array_uintersect(), array_uintersect_assoc(), array_uintersect_uassoc() array_walk(), array_walk_recursive() xml_set_character_data_handler() xml_set_default_handler() xml_set_element_handler() xml_set_end_namespace_decl_handler() xml_set_external_entity_ref_handler() xml_set_notation_decl_handler() xml_set_processing_instruction_handler() xml_set_start_namespace_decl_handler() xml_set_unparsed_entity_decl_handler() stream_filter_register() set_error_handler() register_shutdown_function() register_tick_function()