代码审计思路以及php配置

5pe25YWJ5aaC6aOO6L2m77yM5Y205LiN5Lya6L2u5Zue44CC5pyd6Zye5LiO5aSV5pmW77yM5Y+q5Zyo6L2s55Sf44CC

今天学了php代码审计的思路以及php配置的讲解,

1.了解MVC:

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。

MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。

MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

下图是他的工作流程图:

2.要熟悉知道一些常用的php框架,如thinkphp、Yaf、doitphp等框架

3.审计的一般流程是:

获取目录-->全局过滤-->模块文件-->C函数内容-->M函数内容-->V显示

4.一般方法:

(1)通读全文法:函数集文件、配置文件、安全过滤文件、index文件 一般从index文件入手,优点:比较全面,能挖到漏洞几率大,缺点:耗时间

(2)敏感关键字回溯法:可以高效判断敏感的位置,和挖出想要的漏洞。但覆盖不到逻辑漏洞,以及不能了解程序功能

(3)功能点定向审计:根据程序功能来挖洞,比较简单、高效(推荐使用)

(4)一切皆有可能  一切输入都是有危害的(可以控制变量) 一切进入函数的变量都是有害的的(变量到达有利用价值的函数)

二、php配置

php.ini 主要是一个全局的配置文件,在php启动时一般只读取一次,也就是说当你修改过php.ini时要重启php才能生效。

user.ini 自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件。此类文件仅被 CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果使用 Apache,则用 .htaccess 文件有同样效果。作用:.htaccess是伪静态环境配置文件,用于lamp。
.user.ini是lnmp文件,里面放的是你网站的文件夹路径地址。目的是防止跨目录访问和文件跨目录读取.

1.配置的基本语法:

• 大小写敏感

•运算符:|、&、~、!

•空值表示法

foo=       ;

foo=none;

foo="none "

2.基本配置——安全模式

 

•安全模式

php安全模式:safe_mode=on|off
启用safe_mode指令将对在共享环境中使用PHP时可能有危险的语言特性有所限制。可以将safe_mode是指为布尔值on来启用,或者设置为 off禁用。它会比较执行脚本UID(用户ID)和脚本尝试访问的文件的UID,以此作为限制机制的基础。如果UID相同,则执行脚本;否则,脚本失败。

•限制环境变量存取

safe_mode_allowed_env_vars = string

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

safe_mode_allowed_env_vars = PHP_当这个选项为空时那么php可以改变任何环境变量。

•外部程序执行目录

safe_mode_exce_dir="home/wwwroot"

•禁用函数

disable_funtion

为了更安全的运行PHP ,可以用此指令来禁止一些敏感函数的使用,当你想用本指令禁止一些危险函数时,切忌把d()函数也加到禁止列表,攻击者可以利用dI()函数加载自定义的php扩展来突破disable_function.配置禁用函数时可以使用逗号分隔函数名

•com组件

com_allow_dcom=false

PHP设置在安全模式下(safe_ mode) ,仍旧允许攻击者使用COM0函数来创建系统组件来执行任意命令。我推荐关闭这个函数来防止出现此漏洞

3.基本配置——变量控制

●全局变量注册开关

register_globals = off

php.ini的register globals选项的状认值预设为Off,在4.2版本之前是默认开启的,当register, _globals的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,这是对服务器来讲是非常不安全的所以我们不能让它注册为全局变量。
●register. globals=On时,服务端使用POST或者GET提交的变量,都将自动使用全局变量的值来接收值

●是否允许包含远程文件
allow_url_include = off
该配置为on的情况下,可以直接包含远程文件,若包含的变量为可控的情况下,可以直
接控制变量来执行PHP代码

●是否允许打开远程文件
allow_url_open = on
允许本地PHP文件通过调用URL重写来打开和关闭写权限,默认的封装协议提
供的ftp和http协议来访问文件。

●HTTP头部版本信息
expose_php = off
防止了通过http头部泄露的php版本信息

●文件上传临时目录
upload_tmp_dir =
上传文件临时保存的目录,如果不设置的话,则采用系统的临时目录

●用户可访问目录
open_basedir = E:\Local Test\WWW
能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问,不应
该访问的文件,-定程度 上限制了phpshell的危害

●内部错误选项
display_errors = on
表明显示PHP脚本的内部错误。网站发布后建议关闭PHP的错误回显。在调试的时
候通常把PHP错误显示打开

●错误报告级别
error_reporting.= E_ ALL & ~E_ NOTICE
这个设置的作用是将错误级别调到最高,显示所有问题,方便排错

这就是今天get的内容,好好come on!!

As my watch begins. 我从今天开始守望。

原文地址:https://www.cnblogs.com/4sh3s/p/12630166.html

时间: 2024-08-09 16:42:38

代码审计思路以及php配置的相关文章

大规模网站sesson会话保持思路及实践配置

1.需求: 请教个问题:我用lvs的rr模式,(考虑过 ipvsadm -p,但是这样就失去了负载均衡的意义感觉),后端有10台web,用一台memcached专门用于存储session文件,但是现在问题是,客户端请求第一次被轮训到 web A服务器,A可以获取到本次回话的session ID,从而可以从memcached里通过sessionID获取到这次回话的session ID,而第二次请求轮训到B服务器,因为第一次请求没经过web B,他不知道session ID啊,所以他从memcach

专业存储基本配置思路

目录 专业存储基本配置思路 典型拓扑 配置思路 专业存储基本配置思路 我叫张贺,贪财好色.一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步. 个人博客:传送阵 笔者微信:zhanghe15069028807,非诚勿扰. 典型拓扑 单光纤交换机配置拓扑: 双光交典型配置拓扑: 每个光交上连接服务器的物理接口能访问到两个控制器 配置思路 第一步:创建存储池,例如"pool1",存储池里面并不关联任何硬盘,存储池是多个RAID和多个

php代码审计基础知识

学习的链接 http://qiyuanxuetang.net/courses/video/21/ 环境搭建 phpstudy Xdebug 1.打开phpstudy找到对应php版本的php.ini文件 2.打开phpstorm编辑器 配置php环境 Debug端口 代理的设置 配置一下server端 IDE PHPstorm 代码审计工具 fortify.checkmarx.seay.cobra.RIPS.Beyond Compare.文件监控.数据库语句监控 代码审计思路 敏感函数回溯参数

CIsco动态路由配置之EIGRP

Cisco配置动态路由,可以使用EIGRP(增强型内部网关路由选择协议)进行配置 EIGRP支持: 快速收敛:使用DUAL(弥散更新算法)来实现快速收敛. 带宽的有效利用:发送部分.增量的路由更新而不是发送整个路由表,从而实现带宽的有效利用. 支持多个网络层协议:使用独立于协议的模块(PDM)来支持IP,IPX,Appletalk等协议. 支持VLSM(变长子网掩码)和CIDR(无类域间路由) 思路:分别配置各个路由器的端口IP 使用EIGRP 在各自路由器配置所属的网段 R1#CONF T E

技术专题-PHP代码审计

作者:坏蛋链接:https://zhuanlan.zhihu.com/p/24472674来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.前言 php代码审计如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞.如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输 和调用过程. 入门php代码审计实际并无什么门槛要求,只需要理解基础的php语法规则,以及理解各种类型漏洞的出现原因则可以开始尝试审计php源代码.通常的漏洞演示中

Lichee (五) sysconfig1.fex 配置系统

sysconfig配置系统,作为一个通用的软件平台,还希望通过它,可以适应用户不同的方案.通过给出一个对应的配置,用户的方案就可以自动运行,而不需要修改系统里面的代码,或者重新给出参数. 一. sysconfig1.fex简述 配置脚本的本意是给系统传递参数.作为一个稳定的系统,本身应该和方案无关, 不管不同方案的差别有多大,系统都不应该重新编译才能运行.这里所说的系统,不单单指操作系统,也包括其中的驱动,模块,等等. 不同方案的差别,通常体现在: 1) 使用的硬件模块不同,比如使用了不同的NA

php配置rewrite模块

转 (1)    启用rewrite模块,在默认情况下,没有启用 修改httpd.conf文件 #启动rewrite模块 LoadModule rewrite_module modules/mod_rewrite.so 确认是否启动成功 <?php phpinfo();?> (2)    配置我们的虚拟主机 httpd.conf 打开虚拟主机的配置文件 # Virtual hosts Include conf/extra/httpd-vhosts.conf 修改 httpd-vhost.con

PHP4-漏洞挖掘思路

漏洞挖掘思路 漏洞形成的条件 1.变量可控制 2.变量可到达有利用价值的函数(危险函数) 漏洞造成的效果 漏洞的利用效果取决于最终的函数功能,变量进入什么样的函数就导致什么样的效果 危险函数 文件包含:包含漏洞 代码执行:执行任意代码漏洞 命令执行:执行任意命令漏洞 文件系统操作:文件(目录)读写删等漏洞 数据库操作:SQL注入漏洞 数据显示:XSS等客户端漏洞 -------- 代码审计的本质 找漏洞==找对应变量与函数 常见的代码审计思路 1.根据敏感关键字回溯参数传递过程 [逆向追踪] 优

PHP代码审计中你不知道的牛叉技术点

一.前言 php代码审计如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞.如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输 和调用过程. 入门php代码审计实际并无什么门槛要求,只需要理解基础的php语法规则,以及理解各种类型漏洞的出现原因则可以开始尝试审计php源代码.通常的漏洞演示中sql语句会直接传入php自带的函数传入数据库执行,但在实际的软件项目中,通常以面向对象的思想进行编程,则会涉及各种形式的封装,调用,以及不同风格的框架,在这个条件下,只