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. 【一天一道LeetCode】#88. Merge Sorted Array

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...

  2. UITableView大总结(上)

    1.UITableView继承UIScrollView. 2.实例一城市列表思路: 步骤一:创建UITableView.UITableView样式为组 步骤二:设置UITableView的数据源方法. ...

  3. 精通mysql之精通EXPLAIN

    EXPLAIN列的解释: table:显示这一行的数据是关于哪张表的 type:这是重要的列,显示连接使用了何种类型.从最好到最差的连接类型为const.eq_reg.ref.range.indexh ...

  4. CSS中编写省略号代码片段

     #component-content #dtMain .dt-ul > li .component-item .component-name{ display:inline-block; ...

  5. Spring MVC中jsessionid所引起的问题 和解决

     转自:http://blog.csdn.net/seakingwy/article/details/1933687 jsessionid所引起的问题在Spring MVC当使用RedirectV ...

  6. Gradle 1.12用户指南翻译——第二十一章. Gradle 插件

    昨天晚上只顾着和女朋友看<匆匆那年>电视剧的最后几集,所以说好的Android文档<Gradle 插件用户指南>第五章自然也没翻译多少.所以今天也发不了第五章的翻译了,就发几个 ...

  7. Python学习笔记 - 迭代器Iterator

    我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的genera ...

  8. 关于post利用之Python

    今天大师兄放出了自己用PHP写的KTV点歌系统,注明,欢迎调戏,于是乎就尝试了下. 地址就不上了,到现在没补漏洞,我可不想被大师兄K…… 首先试试JavaScript脚本能否恶搞下 来个最基础的警告框 ...

  9. AngularJS进阶(二十六)实现分页操作

    JS实现分页操作 前言 项目开发过程中,进行查询操作时有可能会检索出大量的满足条件的查询结果.在一页中显示全部查询结果会降低用户的体验感,故需要实现分页显示效果.受前面"JS实现时间选择插件 ...

  10. STL - 各个容器的使用时机

    deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加.如果采用vector,则头端移除时,会移动大量的数据,速度慢. vector与deque的 ...