前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码审计基础(一)

代码审计基础(一)

作者头像
天钧
发布2019-07-25 10:11:03
1.4K0
发布2019-07-25 10:11:03
举报
文章被收录于专栏:渗透云笔记渗透云笔记

审计基础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

代码语言:javascript
复制
<?php
$cmd = $_GET['cmd'];
system($cmd)
?>

从get提交上来保存到cmd然后用system去执行。如下

构造

代码语言:javascript
复制
http://127.0.0.1/test.php?cmd=dir

这是在safe_mode关闭的情况下

刷新被屏蔽了,这个特性在php5.4.0被移除。

限制环境变量存取。

代码语言:javascript
复制
safe_mode_allowed_env_vars = string

指定PHP程序可以改变的环境变量的前缀,当这个值为空时,那么PHP可以改变任何环境变量

禁用函数与禁用类

类如禁用system函数如下

同时把safe_mode设置成off

com组件

代码语言:javascript
复制
com.allow _dcom =false

php 设置在安全模式下(safe_mode),仍然允许攻击者使用COM函数来创建系统组件,来执行任意命令,如果version<5.4.5就不需要

改成false

代码语言:javascript
复制
com.allow_dcom = false

全局变量注册开关。

代码语言:javascript
复制
register_globals = On
代码语言:javascript
复制
<?php
if(isset($_ESSION['username'])){
    echo "do evering";
}else{
    echo "您尚未登陆";

}
?>

简单的去写这个

代码语言:javascript
复制
register_globals = off

打开

代码语言:javascript
复制
register_globals = on

这样相当于拥有了username的权限,所以要把这个全局内容关闭

代码语言:javascript
复制
官方配置文档https://www.php.net/manual/zh/ini.list.php
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透云笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档