代码审计基础(一)

释放双眼,带上耳机,听听看~!

环境准备;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
<?phpif(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获取资源

本文源自微信公众号:渗透云笔记

人已赞赏
安全工具

从linux网站搭建到日志服务审计渗透溯源

2019-10-16 17:19:31

安全工具

渗透测试面试问题2019版,内含大量渗透技巧

2019-10-16 17:19:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索