PHP代码审计
Preface
这篇文章的内容会不断的充实和丰富,前期会增加一些之前爆出漏洞的复现过程,来丰富自己实际代码审计经验,后期如果能挖掘出新的漏洞,便更好。
常用的输出函数
echo:输出一个字符串或变量,但是不能输出数组
print_r:输出一个数组
var_dump:输出一个变量的结构,这个变量包含普通变量,数组,对象
获取当前进程所有变量、函数、常量、类
get_defined_vars(void):返回当前可用的变量列表的多位数组,包括环境变量、服务器变量和用户定义的变量
$GLOBALS:返回所有的全局变量
get_defined_functions:获取所有已经定义的函数,包含内部函数和用户定义的函数。
==> 输出用户定义的函数方法为:
$hhh=get_defined_functions(); var_dump($hhh['user']);
get_defined_constants(void):返回所有可用的常量,包含系统常量和用户定义的常量
get_declared_classes(void):返回所有可用的类,包含系统类和用户定义的类
get_include_files():返回所有的包含的文件路径的数组
需要了解的超全局变量
$GLOBALS:引用全局作用域中可用的全部变量
$_SERVER:保存关于包头、路径和脚本位置的信息
$_REQUEST
$_POST
$_GET
$_FILES
_ENV
$_COOKIE
$_SESSION
$_SERVER 中访问的最重要的元素
元素/代码
|
描述
|
$_SERVER['PHP_SELF'] | 返回当前执行脚本的文件名 |
$_SERVER['GATEWAY_INTERFACE'] | 返回服务器使用的 CGI 规范的版本 |
$_SERVER['SERVER_ADDR'] | 返回当前运行脚本所在的服务器的 IP 地址 |
$_SERVER['SERVER_NAME'] | 返回当前运行脚本所在的服务器的主机名(如 www.w3school.com.cn) |
$_SERVER['SERVER_SOFTWARE'] | 返回服务器标识字符串(比如 Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | 返回请求页面时通信协议的名称和版本(如:“HTTP/1.0”) |
$_SERVER['REQUEST_METHOD'] | 返回访问页面使用的请求方法(如POST) |
$_SERVER['REQUEST_TIME'] | 返回请求开始时的时间戳(例如 1577687494) |
$_SERVER['QUERY_STRING'] | 返回查询字符串,如果是通过查询字符串访问此页面 |
$_SERVER['HTTP_ACCEPT'] | 返回来自当前请求的请求头 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 返回来自当前请求的 Accept_Charset 头( 例 如 utf-8,ISO-8859-1) |
$_SERVER['HTTP_HOST'] | 返回来自当前请求的 Host 头 |
$_SERVER['HTTP_REFERER'] | 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持) |
$_SERVER['HTTPS'] | 是否通过安全 HTTP 协议查询脚本 |
$_SERVER['REMOTE_ADDR'] | 返回浏览当前页面的用户的 IP 地址 |
$_SERVER['REMOTE_HOST'] | 返回浏览当前页面的用户的主机名 |
$_SERVER['REMOTE_PORT'] | 返回用户机器上连接到 Web 服务器所使用的端口号 |
$_SERVER['SCRIPT_FILENAME'] | 返回当前执行脚本的绝对路径 |
$_SERVER['SERVER_ADMIN'] | 该值指明了Apache服务器配置文件中的SERVER_ADMIN 参数 |
$_SERVER['SERVER_PORT'] | Web 服务器使用的端口。默认值为 “80” |
$_SERVER['SERVER_SIGNATURE'] | 返回服务器版本和虚拟主机名 |
$_SERVER['PATH_TRANSLATED'] | 当前脚本所在文件系统(非文档根目录)的基本路径 |
$_SERVER['SCRIPT_NAME'] | 返回当前脚本的路径 |
$_SERVER['SCRIPT_URI'] | 返回当前页面的 URI |
Reference:
PHP 代码审计 链接:https://pan.baidu.com/s/1dGiP1Mp 密码:ibs0
PHP代码审计的更多相关文章
- PHP代码审计中你不知道的牛叉技术点
一.前言 php代码审计如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞.如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输 和调用过程. 入门php代码审计实 ...
- 技术专题-PHP代码审计
作者:坏蛋链接:https://zhuanlan.zhihu.com/p/24472674来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.前言 php代码审计如字面 ...
- 关于PHP代码审计和漏洞挖掘的一点思考
这里对PHP的代码审计和漏洞挖掘的思路做一下总结,都是个人观点,有不对的地方请多多指出. PHP的漏洞有很大一部分是来自于程序员本身的经验不足,当然和服务器的配置有关,但那属于系统安全范畴了,我不太懂 ...
- Kindeditor 代码审计
<?php /** * KindEditor PHP * * 本PHP程序是演示程序,建议不要直接在实际项目中使用. * 如果您确定直接使用本程序,使用之前请仔细确认相关安全设置. * */ r ...
- 一个CMS案例实战讲解PHP代码审计入门
前言 php代码审计介绍:顾名思义就是检查php源代码中的缺点和错误信息,分析并找到这些问题引发的安全漏洞. 1.环境搭建: 工欲善其事必先利其器,先介绍代码审计必要的环境搭建 审计环境 window ...
- php代码审计基础笔记
出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 3.全局防护Bypass之Base64Decode
0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.同上一篇,我 ...
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 2.全局防护Bypass之UrlDecode
0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.遇到这种情况 ...
- PHP代码审计】 那些年我们一起挖掘SQL注入 - 1.什么都没过滤的入门情况
0x01 背景 首先恭喜Seay法师的力作<代码审计:企业级web代码安全架构>,读了两天后深有感触.想了想自己也做审计有2年了,决定写个PHP代码审计实例教程的系列,希望能够帮助到新人更 ...
- 【转】PHP代码审计
PHP代码审计 目录 1. 概述3 2. 输入验证和输出显示3 2.1 命令注入4 2.2 跨站脚本4 2.3 文件包含5 2.4 代码注入5 2.5 SQL注入6 2.6 XPath注入6 2.7 ...
随机推荐
- HTTP请求方法
HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, ...
- Spark MLlib数据类型
MLlib支持几种数据类型:本地向量(local vectors),和存储在一个简单机器中的矩阵(matrices),以及由一个或多个RDDs组成的分布式矩阵. 1,本地向量(Local Ve ...
- 【一天一道LeetCode】#84. Largest Rectangle in Histogram
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given n ...
- 【UI 设计】PhotoShop基础工具 -- 移动工具
还是学点美工的东西吧, 业余爱好 比学编程还难 PS版本 : PhotoShop CS6 1. 移动工具 (1) 工具栏和属性栏 工具栏 和 属性栏 : 左侧的是工具栏, 每选中一个工具, 在菜单 ...
- MyBatis - 介绍、简单入门程序
JDBC编程中的问题 1. 将SQL语句硬编码到Java代码,不利于系统维护. 设想如何解决:将SQL单独抽取出来,在配置文件(xml方式.properties文件)进行配置. ...
- MySQL数据库写入图片并读取图片显示到JLabel上的详解
相较于Oracle,MySQL作为一个轻量级的开源的数据库,可谓是大大简化了我们的操作.这次我就来写一个关于数据库存入图片,获取图片的例子吧,也为了今后的复习使用.(我们一般采取存入路径的方式,而不是 ...
- Linux 学习笔记_12_Windows与Linux文件共享服务_1.1_--Samba(上)
Samba简介:在UNIX系统中,Samba是通过服务器消息块协议(SMB)在网络上的计算机之间,共享文件和打印服务的软件包. SMB简介:Server Message Block,SMB协议是一种服 ...
- Robust Locally Weighted Regression 鲁棒局部加权回归 -R实现
鲁棒局部加权回归 [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. 算法参考文献: (1) Robust L ...
- Esper剖析
Esper剖析 最近在看论文,发现文中有些语言自己未曾见过,经过一番搜索,才发觉是自己接触到了新知识. 官网: )esper的核心包包含了EPL语法解析引擎,事件监听机制,事件处理等核心模块. (2) ...
- 理解WebKit和Chromium: Chromium的多进程资源加载机制
转载请注明原文地址:http://blog.csdn.net/milado_nju ##概述 前面介绍了WebKit中的资源加载机制,其实它只是一个框架性的东西,实际的资源加载依赖于各个WebKit移 ...