DW + PHPStorm + PhpStudy + Navicat Premium
DW : HTML&JS&CSS开发
PHPStorm : 专业PHP开发IDE
PhpStudy :Apache MYSQL环境
Navicat Premium: 全能数据库管理工
变量覆盖安全:
$GLOBALS:这种全局变量用于在PHP脚本中的任意位置访问全局变量
用这个($GLOBALS)声明的变量 可以在全局中使用,"."是连接符号,sum函数中初始化并赋值了一个全局变量z,在函数外也可以对其进行访问; 而sum1函数中的变量都报错,函数内调用不了函数外的变量,函数内的变量只对函数内起作用,所以输出h时会报错,报a,b,h 都未定义

数据接收安全:
*REQUEST* *:*REQUEST 用于收集 HTML 表单提交的数据。
$_POST:广泛用于收集提交method="post" 的HTML表单后的表单数据。
$_GET:收集URL中的发送的数据。也可用于提交表单数据(method="get")
REQUEST 接受POST 和 GET 请求
z值只接受POST请求,这里是GET请求,所以z无效; GET请求的参数写在网址后,? 用于分隔URL 和参数,而 & 用于分隔多个参数

当改成POST请求时,用HackBar 插件或者用Postman
HackBar 插件
将网址复制到下面的框中,然后点击post data ,将post提交的参数写上去 ,最后点击 execute

这里请求就变成了post请求了

Postman

$_ENV:是一个包含服务器端环境变量的数组。
因为这里没弄服务器所以演示不了
变量值含义

$_SERVER:这种超全局变量保存关于报头、路径和脚本位置的信息。

变量值含义


文件上传安全:
$_FILES:文件上传且处理包含通过POST方法上传给当前脚本的文件内容。
网上找一个php文件上传脚本,复制进去,将action留空(提交给自己处理),然后选择一个文件提交上去


可以用burp 拦截数据包然后修改后放出


身份验证安全:
$_COOKIE:是一个关联数组,包含通过cookie传递给当前脚本的内容。
本地客户端浏览器存储cookie值

第一次访问时没有cookie

第二次就出现了

$_SESSION:是一个关联数组,包含当前脚本中的所有session内容。
目标服务端存储,存储记录的数据
设置session值为xd

这里会在服务端生成一个值,关掉浏览器在打开去访问时,又会生成一个新的值

演示:
1、DuomiCMS变量覆盖
找变量覆盖代码->找此文件调用->
选择利用覆盖Session->找开启Session文件覆盖
先用phpstudy搭建一个网站,将源码放进根目录中, php版本选择5.5 ,MySQL选5.7 ,不然会安装了,网站搭不起来

找到这段代码,查找那个文件调用了这个代码的文件,

这里判断groupid值 为1时时管理员

通过两段代码结合

因为时session验证,所以要有session_start(); 函数 并且要引用包含foreach的脚本文件

输入:
http://192.168.0.101:90/interface/comment.php?_SESSION[duomi_admin_id]=10&*SESSION[duomi_group_id]=1&*SESSION[duomi_admin_name]=zmh
访问管理员登录页面 : 实现不输入账号密码成为管理员
