当前位置: 首页 > news >正文

WEB开发-第二十七天(PHP篇)

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

访问管理员登录页面 : 实现不输入账号密码成为管理员

http://www.dtcms.com/a/319431.html

相关文章:

  • 【Unity Plugins】使用ULipSync插件实现人物唇形模拟
  • 基于Spring Cloud Stream与Kafka的事件驱动微服务架构设计与实战指南
  • 【Python】基于Python自动化邮件发送系统:从配置到实现的完整指南
  • 【YOLOv8改进 - C2f融合】C2f融合SFS-Conv(空间 - 频率选择卷积)提升特征多样性,同时减少参数和计算量
  • 如何在 VS Code 中进行 `cherry-pick`
  • 使用Python验证常见的50个正则表达式
  • react接口防抖处理
  • [网格图DP]3363. 最多可收集的水果数目
  • 视频二维码如何助力博物馆打造智慧讲解体验
  • 数据库事务总结
  • 升级g++编译器
  • RK3568项目(十二)--linux驱动开发之基础通讯接口(上)
  • 时序数据库的功能与应用价值
  • RPC 解析
  • Renesas Electronics RZ/V2N 评估套件
  • 从密钥生成到功能限制:Electron 中 secure-electron-license-keys 的完整集成方案
  • Spring Cloud系列—LoadBalance负载均衡
  • 5分钟了解OpenCV
  • 用 Enigma Virtual Box 把 Qt 程序压成单文件 EXE——从编译、收集依赖到一键封包
  • 大数据spark、hasdoop 深度学习、机器学习算法的音乐平台用户情感分析系统设计与实现
  • 多线程 future.get()的线程阻塞是什么意思?
  • Spark Memory 内存设计的核心组件
  • 2025年主流开源音视频播放项目深度解析
  • 数据结构——B-树、B+树、B*树
  • flutter-使用AnimatedDefaultTextStyle实现文本动画
  • 状压DP-子集枚举技巧
  • MySQL UNION 操作符详细说明
  • 机器视觉系统工业相机的成像原理及如何选型
  • 数据结构-哈希表(散列表)
  • 进程控制:进程的创建、终止、阻塞、唤醒、切换等生命周期管理操作