52 代码审计-PHP项目类RCE及文件包含下载删除

目录

    • 漏洞关键字:
    • 演示案例:
      • xhcms-无框架-文件包含跨站-搜索或应用-include
      • earmusic-无框架-文件下载-搜索或应用功能-down等
      • zzzcms-无框架-文件删除RCE-搜索或应用-unlink、eval

漏洞关键字:

SQL注入:
select insert update mysql_query mysql等
文件上传:
$_FILES,type=“file”,上传,move_uploaded_file()等
xss跨站:
print print_r echo sprintf die var_dump var_export等
文件包含:
include include_once require require_once等
代码执行:
eval assert preg replace call user func call user func array等
命令执行:
system exec shell_exec ’ ’ passthru pcntl_exec popen proc_open
变量覆盖:
extract() parse_str() importrequestvariables () $$等
反序列化:
serialize() unserialize() _construct _destruct等
其他漏洞:
unlink() file_get_contents() show_source() file() fopen()等

#通用关键字:

$_GET$_POST$_REQUEST$_FILES$_SERVER

演示案例:

xhcms-无框架-文件包含跨站-搜索或应用-include

#通过应用及URL地址等分析可能存在xss及包含安全
抓包找到xss无过滤代码块及文件包含有后缀需绕过代码块

找跨站漏洞的话,第一个找输出函数,第二个是功能点;如果是在输出地方的话,那就找输出函数,如果是功能点,那就找变量和数据有相应输出的地方;网站留言板可以测试跨站漏洞,因为留言板存在接受数据,将数据进行留言板展示的,这个操作是满足跨站漏洞原理的

可以从功能点上分析,也可以从代码层面上搜索指令进行测试
在这里插入图片描述
在这里我们可以搜索一下全局相关的输出性函数
在这里插入图片描述
一般我们是找非admin的,因为后台一般是要我们登录才能进行操作,所以我们优先看非后台目录的地方
在这里插入图片描述
可以看到navs是从mysql执行的地方来的,而sql语句是已经写死了,也就是说数据库的数据是死的,我们不能控制它,所以navs是没作用的
在这里插入图片描述
echo是受pages、info两个变量控制的,info的值是写死的,也没什么作用;pages明显是从变量page接收过来的,用到了魔术引号addslashes对一些. / ' " 符号进行转义,我们跨站语句不会触发这些字符,所以这个地方可能存在跨站漏洞,文件是/files/contact.php
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们尝试访问文件看一下,文件对应存储路径地址和我们访问地址,如果采用mvc结构的话,与自己写的访问路由结构,对应不上就会出现访问失败
在这里插入图片描述
我们看一下files下的index首页
在这里插入图片描述
看一下根目录的index
在这里插入图片描述
应该要这样子访问
在这里插入图片描述
在后面加个参数page=1
在这里插入图片描述
在这里插入图片描述
对应的应该是这条语句
在这里插入图片描述
直接执行跨站语句,成功
在这里插入图片描述
从功能点,网站有联系,明显就是互动的地方,就存在数据的接收和数据显示的操作,这是符合跨站漏洞产生原理的

我们打开它的网站地址,找到他对应的文件,他的访问地址是contact和我们刚才搜索找到contact.php的文件名是一样的,再像我们刚才一样看代码

文件包含搜索关键字,因为我们从网站上看不到有类似文件包含的功能点
在这里插入图片描述
包含文件里面存在变量action,action又从变量file来,同样的这个地方使用转义来过滤,但是这个没有作用,因为他只是过滤一些注入的,像正常传输文件名是没有任何操作的
在这里插入图片描述
这个就是典型的限制后缀,他会自动加上.php干扰你
在这里插入图片描述
我们可以采取下面两种方式进行绕过
%00截断: 条件: magic_quotes_gpc = off php版本<5.3.4
filename=…/…/…/www.txt%00
长度截断:条件:windows,点号需要长于256;linux 长于4096
在这里插入图片描述
能绕过是漏洞,不能绕过也是漏洞,只是他的版本不符合,假如他上面没有.php,那就是典型的无限制文件包含漏洞

远程包含取决于php环境自身设置有没有开allow_include开关,如果是远程包含漏洞,那危害就比较大了

earmusic-无框架-文件下载-搜索或应用功能-down等

#通过应用分析或搜索判断可能存在文件下载操作
抓包分析下载地址找到对应代码块,文件下载地址由$file控制

$file从数据库查询语句得知,追踪那里可更新或更改此类数据尝试修改发现过滤,追踪过滤机制分析绕过,采用全路径地址绕过

这个站点类似访问QQ音乐官网的程序,他是注册账号之后,可以上传音乐作品
在这里插入图片描述
由于他主要是用来分享音乐,他这个上面肯定有相关文件的东西的,他是进行文件操作,有文件下载、文件删除,文件上传的安全问题
在这里插入图片描述
注册登录进去,看一下这个地方有那些功能,这个地方可以测试有没有文件上传漏洞
在这里插入图片描述
在这里插入图片描述
文件下载,通过看网站功能,就能分析到存在那些漏洞
在这里插入图片描述
我们拿到程序之后,你自己要去猜测程序存在那些漏洞,是根据程序自身源码,他的应用方向决定的,他的网站偏向社交,有数据的交互,就会产生注入、跨站多一点,像这个音乐的分享、播放,就是操作文件的,这里肯定是有文件上传、下载,这套程序比较偏向于找文件漏洞

通过搜索相关关键字,来搜索文件下载的函数,来找到对应的代码
根据网站给到的功能,我可以根据文件下载功能,把对应的数据包抓到,来找到对应的下载文件的参数和地址来分析到对应代码

我们要先确定下载地址链接,然后去寻找代码
在这里插入图片描述
这个就是典型的id值接收过来给到变量id
在这里插入图片描述

intval
在这里插入图片描述

SafeRequest自定义函数,操作类的东西,获取当前的魔术引号是否开启,定义数据接收方式
在这里插入图片描述
这个就是进行文件下载的数据包
在这里插入图片描述
只是判定音乐作品是否要付费
在这里插入图片描述
如果不需要付费,就设置cookie
在这里插入图片描述
用参数进行下载,下载的文件是变量file
在这里插入图片描述
in_audio对应文件的下载地址,这个值等于什么,就下载什么
在这里插入图片描述
in_audio是id值执行完的结果,这个值是写到数据库里面的,无法通过传参控制这个值

后台的文件需要后台登录才能操作,漏洞即使发现,也没有太大的意义

我们现在是看那个地方可以操作in_audio值,in_audio赋值给变量audio
在这里插入图片描述
在网站这边音频地址写1
在这里插入图片描述
抓包,我们可以看到文件名ajax.php,audio为1
在这里插入图片描述
我们找到ajax.php,发现audio的值给到变量audio,变量audio接收到值就是1
在这里插入图片描述
等于1之后,就赋值给in_audio
在这里插入图片描述
下面这边开始插入数据库
在这里插入图片描述
就会对应修改这个地方
在这里插入图片描述
比如我们下载1.php,把值给保存一下
在这里插入图片描述
在这里插入图片描述
然后看一下
在这里插入图片描述
刷新点击下载
在这里插入图片描述
如果要进行跨越下载,就…/1.php,但是我们发现这边有过滤
在这里插入图片描述
在这里插入图片描述
因为checkrename、unescape是过滤函数,unescape是过滤正则表达式
在这里插入图片描述
checkrename是./触发拦截机制,我们可以…\绕一下
在这里插入图片描述
把id值传输进去,因为你添加音乐地址的时候,数据就写到数据库里面去了,所以你通过id值取出音乐地址里面别人设置好的音频地址来进行下载

功能点或关键字分析可能存在漏洞
抓包或搜索关键字找到代码出处及对应文件
追踪过滤或接受的数据函数,寻找触发此函数或代码的地方进行触发测试

zzzcms-无框架-文件删除RCE-搜索或应用-unlink、eval

文件删除搜索关键宇unlink,对应函数del_file,查看调用此的地方
后台delfile函数调用,如何处罚delfile函数,受参数控制,进行测试
代码执行搜索关键字eval,对应配置模版解析文件,查看调用此地方判断后台可修改模版文件,前台触发模版文件,构造payload进行测试

文件删除漏洞不是很常见,一般我们在黑盒测试很难探针到,因为他需要有特定的访问地址,特定的参数去触发文件类的删除,需要代码去辅助你,你才知道怎么去传参,但是黑盒里面,我们无法知道,没办法测试,得不到效果,所以一般文件删除漏洞,产生在白盒测试里面

利用这个漏洞主要是删除文件的一个安装文件叫install.lock,文件删除漏洞触发条件,我们要去触发删除文件的功能,这个参数怎么传递,才能删除文件,我们需要满足特定文件地址,特定参数值对应上才行,所以一般是代码原因

我们判定程序是否安装,就是判定install.lock文件是否存在,如果这个文件没有,程序就知道你是初次安装,可以访问对应的安装目录,他会提示你已经安装
重新安装的含意是把网站的自身程序重新自定义
在这里插入图片描述
查一下unlink函数,php里面文件删除的函数
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
我们打开程序看一下
在这里插入图片描述

这边unlink有删除文件操作,del_file函数要被调用

在这里插入图片描述
我们通过全局搜索发现del_file函数调用情况,我们优先是不看后台的,因为后台要登录操作,即使发现也不是很大的高危漏洞
在这里插入图片描述
is_write函数调用过,我们继续搜索
在这里插入图片描述
明显这里没有被调用过,他只是申明,这个可以忽略不计
在这里插入图片描述
我们搜handle_upload函数
在这里插入图片描述
被调用过的地方又是upload函数
在这里插入图片描述
我们就要搜upload函数又在那里被调用过,这个就很多了,我们先不看这个
在这里插入图片描述
他们是相辅相成的包含,他包含这个文件,这个文件又包含另一个文件
save.php调用del_file函数
在这里插入图片描述
我们全局跟踪delfile()函数,如果act的值等于delfile,就调用delfile函数,这个函数被调用del_file也会被调用,所以我们要想办法让act等于defile,可以跟踪一下act从那里来
在这里插入图片描述
在这里插入图片描述
我们先看一下getform函数,就是指向接收的方式
在这里插入图片描述
act就是等于get接收的值,我们定位safe_word()函数,就是保留东西不能带特殊符号
在这里插入图片描述
现在大概清楚了,我们访问文件,让act的值等于delfile,就会调用delfile函数,delfile函数就会删除文件,在删除文件执行的时候,需要满足if语句

在这里插入图片描述
我们定位一下arr_search(),他就是判定file_path,safe_path数组里面的值
在这里插入图片描述
safe_path在上面已经申明了
在这里插入图片描述
我们追踪file_path函数
在这里插入图片描述
file通过post传递一个path值,在通过file_path获取路径,获取路径之后,和safe_path进行对比,如果重复,就返回true,执行下面代码,就是说我们传递file_path值要带’uplpad’、‘template’、‘runtime’、‘backup’,因为你一旦带这几个值,就执行下面代码,如果没带就直接跳出循环
在这里插入图片描述
我们访问对应地址文件,传递参数
这里实验了漏洞,发现管理员权限登录后台,才可以删除文件,这个漏洞很鸡肋
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件删除的作用是一旦删除install.loc文件之后,你访问安装目录,会重新安装,这个漏洞相当于会造成系统重装的漏洞

搜索eval关键字,看有没有eval关键字形成代码执行漏洞,前面几个都是带关键字不是函数使用
在这里插入图片描述
在这里插入图片描述
这边包含$ifstr,一个个的追踪下去
在这里插入图片描述
在这里插入图片描述
preg_match_all
在这里插入图片描述
$pattern匹配规则,zcontent匹配对象,把zcontent按照pattern规则匹配,匹配出的结果给matches

谁控制了zcontent,就控制了matches,控制了matches,就控制了ifstr,相当于谁引用了parserIfLabel函数,zcontent就是控制的地方

这边写了public,说明这可能是一个对象的写法,就不是单纯的函数
在这里插入图片描述
查一下,谁调用ParserTemplate对象
在这里插入图片描述
ParserTemplate对象创建zcontent
在这里插入图片描述
zcontent来自user_tpl
在这里插入图片描述
在这里插入图片描述
修改模版文件会修改指定文件,漏洞存在模版文件,修改文件,把后门写进去
在这里插入图片描述
相当于修改about.html文件
在这里插入图片描述
在这里插入图片描述
后台模版文件修改之后,前端的html文件也会被修改,而代码执行是产生在模版里面

index.php首页文件就是zzz_client.php文件
在这里插入图片描述
而这个文件调用过ParserTemplate对象,那就是说前端和后端都能修改这个模版
在这里插入图片描述
我们通过后台修改代码,因为前端不能修改代码,让iffile去包含变量,达到规则,前端去访问,去解析它

他是一种程序上的设计,设计里面又不得不进行的操作,所导致的安全问题,他要让html代码执行出php的效果

http://192.168.0.102:91/?r=../../index.txt%00
http://192.168.0.102:94/admin/save.php?act=delfile
path=/upload/../install/install.lock

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/228674.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全自动网印机配件滚珠螺杆起什么作用?

全自动网印机配件主要包括印刷网板、墨水或油墨箱、墨水或油墨管道、传动部件、移动部件、传动系统、控制系统、安全保护装置等等这些。 滚珠螺杆是一种精密的传动元件&#xff0c;能够将电机的旋转运动转化为线性运动&#xff0c;从而驱动印刷机的工作台进行精确的移动&#x…

正则表达式详细讲解

目录 一、正则表达式概念 二、八元素 1、普通字符&#xff1a; 2、元字符&#xff1a; 3、通配符 .&#xff1a; 4、字符类 []&#xff1a; 5、量词&#xff1a; 6、锚点 ^ 和 $&#xff1a; 7、捕获组 ()&#xff1a; 8、转义字符 \&#xff1a; 三、日常使用的正则…

【USRP】5G / 6G OAI 系统 5g / 6G OAI system

面向5G/6G科研应用 USRP专门用于5G/6G产品的原型开发与验证。该系统可以在实验室搭建一个真实的5G 网络&#xff0c;基于开源的代码&#xff0c;专为科研用户设计。 软件无线电架构&#xff0c;构建真实5G移动通信系统 X410 采用了目前流行的异构式系统&#xff0c;融合了FP…

unity 2d 入门 飞翔小鸟 小鸟跳跃 碰撞停止挥动翅膀动画(十)

1、切换到动画器 点击make transition和exit关联起来 2、设置参数 勾选掉Has Exit Time 3、脚本给动画器传参 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : MonoBehaviour {//获取小鸟&#xff08;刚体&#xff09;p…

前端学习微信小程序开发

1.微信小程序项目结构 2.WXML和HTML的区别 3.WXSS与CSS的区别 4.小程序中的.js文件 5.小程序的宿主环境 宿主环境是指程序运行所必须的依赖环境&#xff0c;因此手机微信时小程序的宿主环境。小程序宿主环境包含了通信模型、运行机制、组件、API。 &#xff08;1&#xff09;…

OpenAI的Sam Altman,获《时代》2023年度最佳CEO

12月7日&#xff0c;《时代》周刊在官网公布了2023年最佳CEO——OpenAI的Sam Altman。 此外&#xff0c;梅西入选了年度最佳运动员&#xff0c;Taylor Swift入选年度最佳人物&#xff0c;Alex Newell获年度突破奖。 《时代》周刊曾在今年的9月8日发布了“2023年AI领域最有影响…

轮播插件Slick.js使用方法详解

相比于Swiper而选择使用Slick.js的原因主要是因为其兼容不错并且在手机端的滑动效果更顺畅 参数&#xff1a; 1.基本使用&#xff1a;一般使用只需前十个属性 $(.box ul).slick({autoplay: true, //是否自动播放pauseOnHover: false, //鼠标悬停暂停自动播放speed: 1500, //…

【广州华锐互动】VR煤矿生产事故体验系统为矿工提供一个身临其境的安全实训环境

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐走进我们的生活&#xff0c;为我们带来了前所未有的沉浸式体验。在许多领域&#xff0c;如教育、医疗、娱乐等&#xff0c;VR技术都发挥着重要作用。然而&#xff0c;当这项技术被用于模拟煤矿坍…

前端打包环境配置步骤

获取node安装包并解压 获取node安装包 wget https://npmmirror.com/mirrors/node/v16.14.0/node-v16.14.0-linux-x64.tar.xz 解压 tar -xvf node-v16.14.0-linux-x64.tar.xz 创建软链接 sudo ln -s 此文件夹的绝对路径/bin/node /usr/local/bin/node&#xff0c;具体执行如下…

c语言详解牛顿迭代法以及求解倒数和平方根

Newtons iteration method 是在实数域和复数域利用切线不断逼近方程根的一种求高次曲线方程的方法&#xff0c;区别于梯度下降法&#xff0c;它是二阶导&#xff0c;收敛速度比较快&#xff0c;对于非凸函数&#xff0c;牛顿法容易受到鞍点或者最大值点的吸引。由于牛顿迭代法是…

碳化硅MOS管在三相逆变器上的应用-REASUNOS瑞森半导体

一、前言 三相逆变是指转换出的交流电压为三相&#xff0c;即AC380V&#xff0c;三相电是由三个频率相同、振幅相等、相位依次互差120度的交流电势组成。 三相逆变器的定义是将直流电能转换为交流电能的转换器&#xff0c;其基本原理就是SPWM&#xff0c;硬件架构为四个功率模…

【PyTorch】多层感知机

文章目录 1. 理论介绍1.1. 背景1.2. 多层感知机1.3. 激活函数1.3.1. ReLU函数1.3.2. sigmoid函数1.3.3. tanh函数 2. 代码实现2.1. 主要代码2.2. 完整代码2.2. 输出结果 1. 理论介绍 1.1. 背景 许多问题要使用线性模型&#xff0c;但无法简单地通过预处理来实现。此时我们可以…

暖雪-终业游戏攻略 开荒职业无量尊者圣物搭配(60亿秒伤)

本攻略基本没有用到dlc2的圣物,便于前期开荒,远程攻击难度低(本体也能用这套搭配) 圣物搭配&面板展示 开局可以选择遗物的可以选:堕龙(放三号位) 核心: 灵玉/青龙力量: 玄武/青龙/飞蝗剑/灵玉/朱雀敏捷: 堕龙功效: 憎恨之心 圣物优先级越靠前的越好 武器选择 回魂-搭…

Sublime Text 卡顿

复制下方代码&#xff0c;保存后重启Sublime Text {"non_blocking" : "true","live_mode" : "false" }

28. Python Web 编程:Django 基础教程

目录 安装使用创建项目启动服务器创建数据库创建应用创建模型设计路由设计视图设计模版 安装使用 Django 项目主页&#xff1a;https://www.djangoproject.com 访问官网 https://www.djangoproject.com/download/ 或者 https://github.com/django/django Windows 按住winR 输…

基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)

一、项目简介 本项目是一套基于SpringBootVue学生成绩管理系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&#xff0c;确…

OpenCL学习笔记(二)手动编译开发库(win10+vs2019)

前言 有时需求比较特别&#xff0c;可能需要重新编译opencl的sdk库。本文档简单记录下win10下&#xff0c;使用vs2019编译的过程&#xff0c;有需要的小伙伴可以参考下 一、获取源码 项目地址&#xff1a;GitHub - KhronosGroup/OpenCL-SDK: OpenCL SDK 可以直接使用git命令…

PostgreSQL从小白到高手教程 - 第38讲:数据库备份

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第38讲&#…

【MATLAB源码-第97期】基于matlab的能量谷优化算法(EVO)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 能量谷优化算法&#xff08;Energy Valley Optimization, EVO&#xff09;是一种启发式优化算法&#xff0c;灵感来源于物理学中的“能量谷”概念。它试图模拟能量在不同能量谷中的转移过程&#xff0c;以寻找最优解。 在EVO…

当然热门的原创改写改写大全【2023最新】

在信息时代&#xff0c;随着科技的不断发展&#xff0c;改写软件逐渐成为提高文案质量和写作效率的重要工具。本文将专心分享一些好用的改写软件&#xff0c;其中包括百度文心一言智能写作以及147SEO改写软件。这些工具不仅支持批量改写&#xff0c;而且在发布到各大平台后能够…
最新文章