环境准备;PHPstudy
编译器准备;PHPstorm,notepad++
工具准备;seay源代码审计系统,rips,xdebug,forify SCY
漏洞辅助验证工具;burpsuite,火狐浏览器,加解密转换工具,SQL执行监控工具
后台回复0002
审计基础MVC架构
mvc是一种使用MVC(model view controller 模型-视图-控制器),设计创建web应用程序的模式。
MVC模式同时提供了对HTML,CSS和JavaScript的完全控制。
model(模型)是应用程序中用于处理应用程序数据逻辑的部分,表示应用程序核心(比如数据库记录列表),通常模型对象负责在数据库中存取数据。
view(视图)是应用程序中处理数据显示的部分。显示数据(数据库记录),通常视图是一句模型数据创建的
controller(控制器)是应用程序中处理用户交互的部分,处理输入(写入数据库记录),通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
使用mvc的目的是使模型和视图实现代码分离。从而使有一数据有不同的表现形式他强制性的使应用程序的输入,处理,输出分开处理,各有各的模块。如下关系图
mvc关系
PHP框架了解。
框架其实就是可重用代码的集合,框架的代码是框架架构的代码
常见的如下
zendframwork: (ZF) | Yii |
CakePHP | Symfony |
CodeIgniter(CI) | CanPHP |
Laravel | SlimFramework |
ThinkPHP | PHPUnit |
KYPHP | initPHP |
SpeedPHP |
PHP语法
大小写敏感,大小写的变量如A与a所表达的意思是不同的
这里指小写的foo不等同与大写的FOO
运算符
空值得表达的方式
foo = ;#这样会被理解为一个空的值
foo = None;#这样也会被理解为一个空的值
foo = “None”;#这样会被理解成一个字符串
安全模式(5.2.x的版本)
safe_mode模式
代码保存于test.php
<?php $cmd = $_GET['cmd'];system($cmd)?>
从get提交上来保存到cmd然后用system去执行。如下
构造
http://127.0.0.1/test.php?cmd=dir
这是在safe_mode关闭的情况下
刷新被屏蔽了,这个特性在php5.4.0被移除。
限制环境变量存取。
safe_mode_allowed_env_vars = string
指定PHP程序可以改变的环境变量的前缀,当这个值为空时,那么PHP可以改变任何环境变量
禁用函数与禁用类
类如禁用system函数如下
同时把safe_mode设置成off
com组件
com.allow _dcom =false
php 设置在安全模式下(safe_mode),仍然允许攻击者使用COM函数来创建系统组件,来执行任意命令,如果version<5.4.5就不需要
改成false
com.allow_dcom = false
全局变量注册开关。
register_globals = On
<?php if(isset($_ESSION['username'])){ echo "do evering";}else{ echo "您尚未登陆";}?>
简单的去写这个
register_globals = off
打开
register_globals = on
这样相当于拥有了username的权限,所以要把这个全局内容关闭
官方配置文档https://www.php.net/manual/zh/ini.list.php
欢迎打赏或者多多点击再看哦
顺便,我建立了个交流群,欢迎骚扰,添加运营号,让运行拉你。
后台回复0003获取资源