首页 / PHP / 网络安全自学篇-PHP代码审计(一)
网络安全自学篇-PHP代码审计(一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了网络安全自学篇-PHP代码审计(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2956字,纯文字阅读大概需要5分钟。
内容图文
代码审计简介
相较与黑盒测试而言,代码审计(白盒测试)可以帮助我们更能了解web应用的框架和结构方便我们挖掘出黑盒测试中难以发觉的一些漏洞,总而言之就是对代码进行审计,并发现代码的vulnerability。
代码安全性分析
从输入、输出的验证,安全功能以及异常处理入手
环境搭建
采用Phpstorm+Phpstudy
相关链接:
http://www.xue51.com/soft/37849.html
https://www.xp.cn/
审计辅助
Notepad++、Seay源代码审计工具、RIPS、Fortify SCA
相关链接:
https://dl.pconline.com.cn/html_2/1/117/id=10699&pn=0.html
https://www.jb51.net/softs/199462.html
http://rips-scanner.sourceforge.net/
https://www.zdfans.com/html/48084.html
验证辅助
Burpsuite、hackbar、Proxy(代理工具)、Modheader等
架构认识
案例:
MVC架构
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
Model(模型):是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。
View(视图):是应用程序中处理数据显示的部分,也就是=用户看到并与之交互的界面。
Controller(控制器):是应用程序中处理用户交互的部分,例如当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
MVC架构处理流程
接收请求->全局过滤->模块文件->Controller(函数内容)->Model(函数内容)->View(显示)
常见的PHP框架
ThinkPHP、Yaf、Laravel 、Kohana、CodeIgniter、Yii、Smyfony、doitphp等
审计方式
一、通读原文
函数集文件、配置文件、lib安全过滤文件、Index文件、主目录、模块目录、插件目录、上传目录、模板目录、数据目录、配置目录、配置文件、公共函数文件、安全过滤文件、数据库结构、入口文件等
二、 敏感关键字回溯参数
select、insert、eval、exec等等
三、查找可控变量
$_POST、$_GET、$_REQUEST
$var = $_GET['var'];
eval($var);
四、功能点定向审计
程序安装、文件上传、文件管理、登录验证、备份恢复、找回密码
PHP核心安全配置详解
基本配置-语法
directive =value(指令=值)
foo = bar != FOO =bar
运算符
|、&、~、!
空值
foo = ;
foo = none;
foo = "none“;
安全模式
safe_mode= on(用来限制文档的存取、限制环境变量的存取,控制外部程序的执行,PHP5.4.0以上被移除)
safe_model_allowed_env_vars = string,限制环境变量的存取,即PHP程序能改变环境变量的前缀,当选项值为空时,PHP可以改变任何环境变量
safe_mode_exec_dir=“E:\Phpstudy\WWW”,控制外部程序的执行
disable_functions,禁用函数,禁止一些敏感函数,但不要禁止dl函数,攻击者可以利用dl()函数加载自定义的php扩展来突破disable_function
com.allow_dcom= false,com组件,PHP设置在安全模式下(safe_mode),仍旧允许攻击者使用COM()函数来创建系统组件来执行任意命令
register_globals= off,全局变量注册开关
magic_quotes_gpc= on,相当于addslashes
allow_url_include= off,包含远程文件,注意变量是否可控
allow_url_open= on,允许本地PHP文件通过调用URL重写来打开和关闭写权限
expose_php= off,防止通过http头部泄露的php版本信息
upload_tmp_dir = “E:\Phpstudy\WWW\temp\upload”,上传文件临时保存的目录
open_basedir= “E:\Phpstudy\WWW”,控制PHP脚本只能访问指定的目录
display_errors= on,网站发布后建议关闭
error_reporting= E_ALL & ~E_NOTICE,方便排错
(文章有所参考,如有侵权,联系必删)
内容总结
以上是互联网集市为您收集整理的网络安全自学篇-PHP代码审计(一)全部内容,希望文章能够帮你解决网络安全自学篇-PHP代码审计(一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。