Preface

  这篇文章的内容会不断的充实和丰富,前期会增加一些之前爆出漏洞的复现过程,来丰富自己实际代码审计经验,后期如果能挖掘出新的漏洞,便更好。

代码审计之SQL注入:BlueCMSv1.6 sp1

常用的输出函数

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代码审计的更多相关文章

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

    一.前言 php代码审计如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞.如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输 和调用过程. 入门php代码审计实 ...

  2. 技术专题-PHP代码审计

    作者:坏蛋链接:https://zhuanlan.zhihu.com/p/24472674来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.前言 php代码审计如字面 ...

  3. 关于PHP代码审计和漏洞挖掘的一点思考

    这里对PHP的代码审计和漏洞挖掘的思路做一下总结,都是个人观点,有不对的地方请多多指出. PHP的漏洞有很大一部分是来自于程序员本身的经验不足,当然和服务器的配置有关,但那属于系统安全范畴了,我不太懂 ...

  4. Kindeditor 代码审计

    <?php /** * KindEditor PHP * * 本PHP程序是演示程序,建议不要直接在实际项目中使用. * 如果您确定直接使用本程序,使用之前请仔细确认相关安全设置. * */ r ...

  5. 一个CMS案例实战讲解PHP代码审计入门

    前言 php代码审计介绍:顾名思义就是检查php源代码中的缺点和错误信息,分析并找到这些问题引发的安全漏洞. 1.环境搭建: 工欲善其事必先利其器,先介绍代码审计必要的环境搭建 审计环境 window ...

  6. php代码审计基础笔记

    出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...

  7. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 3.全局防护Bypass之Base64Decode

    0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.同上一篇,我 ...

  8. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 2.全局防护Bypass之UrlDecode

    0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.遇到这种情况 ...

  9. PHP代码审计】 那些年我们一起挖掘SQL注入 - 1.什么都没过滤的入门情况

    0x01 背景 首先恭喜Seay法师的力作<代码审计:企业级web代码安全架构>,读了两天后深有感触.想了想自己也做审计有2年了,决定写个PHP代码审计实例教程的系列,希望能够帮助到新人更 ...

  10. 【转】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 ...

随机推荐

  1. Android自定义Button的“款式”

    要想让你的button呈现出一种不一样的外观,一般会采取以下两种形式 采用selector里面加图片的方式 采用selector用shape进行代码控制的方式 对第一种方式而言,只需要注意好" ...

  2. jenkins新建slave

    (1)linux-ssh方式 请确保slave账户的java为1.6版本,其中1.3.4.6.7.8.9为必填项. (2)windows-jnlp方式 (1)与ssh方式不同,windows节点请先在 ...

  3. python的sorted

    读入后,要进行组内排序,按groupseq字段排序后,然后统计前后两个项的个数,累加到全局. sorted函数使用如下: def sortlist(alllist):     sorted_key1_ ...

  4. python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变

    函数参数传递本质上和变量整体复制一样,只是两个变量分别为形参a和实参b.那么,a=b后,a变了,b值是否跟着变呢?这取决于对象内容可变不可变 首先解释一下,什么是python对象的内容可变不可变? p ...

  5. RHEL6.4上升级python从2.6.6到2.7.3

    RHEL6.4上升级python从2.6.6到2.7.3 原始安装好的redhat6.4上的python版本是2.6.6,不能满足实际需要.升级的方法很多,从源码升级或者从rpm包升级.其中从rpm包 ...

  6. Sample Code for Qp_preq_pub.Price_request Api to Simulate an Ask for Promotion Modifier

    DECLARE p_line_tbl QP_PREQ_GRP.LINE_TBL_TYPE; p_qual_tbl QP_PREQ_GRP.QUAL_TBL_TYPE; p_line_attr_tbl ...

  7. Concurrent包常用方法简介

    1 Executor接口 留给开发者自己实现的接口,一般情况下不需要再去实现.它只有一个方法 void execute(Runnable command) 2 ExecutorService接口 它继 ...

  8. C语言实现牛顿迭代法解方程

    利用迭代算法解决问题,需要做好以下三个方面的工作: 一.确定迭代变量 在可以用迭代算法解决的问题中,我们可以确定至少存在一个可直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量. 二.建立迭 ...

  9. Linux其他常见压缩备份工具 - dd,cpio

    dd dd 可以读取磁碟装置的内容(几乎是直接读取磁区"sector"),然后将整个装置备份成一个文件呢!真的是相当的好用啊- dd 的用途有很多啦-但是我们仅讲一些比较重要的选项 ...

  10. web报表工具FineReport使用中遇到的常见报错及解决办法(二)

    web报表工具FineReport使用中遇到的常见报错及解决办法(二) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己. 出现问题先搜一下文档上有没有,再看看度娘 ...