第一部分审计流程1.用户请求处理流程获取请求全局过滤模块文件C功能内容M功能内??容V展示2.读取原始功能集文件配置文件安全过滤文件索引文件3.网站目录结构主目录模块目录插件目录上传目录模块目录数据目录配置目录配置文件公共函数文件安全过滤文件数据库结构入口文件4.敏感关键字回溯参数优点:高效挖掘漏洞判断敏感触发点的位置和上下文,追踪参数来源缺点:无法覆盖挖掘逻辑漏洞无法理解程序基本框架功能点面向审计程序安装文件上传文件管理登录验证备份恢复找回密码示例大米cms账号功能登录会员信息n找回密码注册修改密码我的提交我的订单Part2PHP核心配置1.区分大小写directive=value(instruction=value)foo=bar≠FOO=bar2.Operators*|,&,~,!null值的表达式为foo=;foo=none;foo="none";3。安全模式safe_mode=off(PHP5.4移除)限制文件访问、环境变量的读取和空外部程序的运行限制变量读取safe_mode_allowed_env_vas=string指定PGP程序可以更改的环境变量的前缀。当该值为空时,可以更改任何环境变量。外部程序执行目录safe_mode_exec_dir=""disabledangerousfunctiondisable_functionscomcomponentcom.allow_dcom=falsePHPsetting在安全模式(safe_mode)下,允许攻击者使用com()函数穿系统组件执行任意命令。要使用com功能,需要在php.ini中配置extension=php_com_dotnet.dll,如果PHPVERSION<5.4.5,则不需要全局变量注册开关register_globals=off。php.ini中register_globals选项的默认值设置为off,在4.2版本之前默认开启。当register_globalson时,程序接受来自服务器的环境变量,包括从register_globals=Off形式提取的变量,服务器在获取数据时使用**$_GET['name']**获取数据register_globals=On,服务器使用POST或GET要提交变量,将使用全局变量来接受值。magicquotes自动过滤magic_quotes_gpc=OnPHP4.5removemagic_quotes_gpc=Off在php中默认是关闭的。而空字符加反斜杠转义,会影响HTTP请求数据(GETPOSTCookies),可以在php代码中使用addslashes转义,stripslashes删除转义。是否允许远程文件包含远程文件allow_url_include=off设置为On时,可以直接包含远程文件。如果包含的变量是可控的,则可以直接控制该变量执行PHP代码。allow_url_open=on允许通过URL改写本地PHP文件默认封装协议提供ftp和http协议访问文件目录权限。HTTP头版本信息expose_php=off防止通过http头泄露的php版本信息上传临时目录upload_tmp_dir=上传的文件是临时保存的目录,如果不设置,用户可以使用系统的临时目录访问该目录。open_basedir=E:\LocalTest\WWW可以控制PHP脚本只访问指定目录。错误信息Internalerroroptiondisplay_errors=on表示显示php脚本内部错误,errorecho错误报告级别error_reporting=E_ALL&~E_NOTICE将错误级别调到最高,显示所有问题,方便排错第三部分代码调试和Xdebug的配置使用echo最简单的输出数据调试方式,一般用于输出变量值或者判断执行哪个分支。print_rvar_dumpdebug_zval_dump是主要输出变量数据值,但是debug_zval_dump的输出结果会有refcount,记录了一个变量被引用的次数debug_print_backtrace可以查看输出的调用栈信息exit()停止程序,不能执行以下代码
