某商城系统(V1.3-2020-01-10)前台命令执行漏洞
2024-08-27 21:25:48
漏洞文件:
./inc/module/upload_img.php
先跟进 del_file 函数:
在 del_file 函数中首先执行了unlink操作,然后接着进行了file_exists 判断。
这是为了删除权限不够的文件,我们应该是没办法找到这类文件。那么如何绕过这么点呢?
unlink:是删除文件,如果是文件夹则会删除失败。
file_exists:则会判断 文件 或 文件夹 是否存在。所以当我们传递一个文件夹的时候既可以绕过。
最开始还有一个对时间的检测,绕过如下:
./inc/module/upload_img.php 该文件 默认是上传文件操作,我们可以在会员中心->编辑头像处上传文件,这样会导致创建一个以 年月日 命名的文件夹,就可以用来绕过第一个点了。
不过我们可以控制文件夹为这三个目录,相对来说会好一些:
然后就可以成功进入到 system 函数进行命令执行了。
多条命令用&连接,如果前面有一条命令错误,都会导致后面的执行失败。
也就是说我们必须要真正删除文件,然后在执行我们的命令。
最终exp为:
请勿用于非法操作,exp已去掉。
修改对应的文件路径。可以直接修改为你上传的那个头像路径,右键就可查看你头像的路径了。
效果如图:
还有一处老问题注入:
./inc/module/user.php
getip函数:./inc/function/functions.php
因为使用的PDO拓展,所以支持多语句执行。
这注入应该算修复失败遗留的注入。
原来的修复方式:./inc/function/global_admin.php
而且我们前台加载的公共函数库是 ./inc/function/functions.php 这个文件。修复到了后台加载的函数库。
最新文章
- ios升级<;注:来着微信平台>;
- 【maven】maven创建web项目-pom文件提示web.xml is missing and <;failOnMissingWebXml>; is set to true
- java分享第八天-01(线程)
- JENKINS基础使用
- C#添加dll引用后,添加命名空间出错的解决方案
- BZOJ1455——罗马游戏
- android通话时第二通电话呼叫等待提示音音量大小
- JSONKit解析json数据
- 数据库调优过程(二):找到IO不存在问题,而是sqlserver单表写入IO瓶颈
- linux 关闭系统提示声音
- linux剪切拷贝
- 【转载】Hadoop和大数据:60款顶级大数据开源工具
- ios日历视图实现日期输入
- 136. Single Number【LeetCode】异或运算符,算法,java
- 转:深入Java集合学习系列:HashMap的实现原理
- 基于Orangpi Zero和Linux ALSA实现WIFI无线音箱(一)
- Python格式化字符
- WPF中任务栏只显示主窗口
- Sql 注入详解:宽字节注入+二次注入
- [翻译]Javaslang 介绍
热门文章
- Arduino IDE 开发 ESP-01S/ESP-01物联网实战检测温度湿度上传MQTT服务器
- 第二章节 BJROBOT IMU 自动校正 【ROS全开源阿克曼转向智能网联无人驾驶车】
- Kafka基本原理概述
- 风炫安全web安全学习第三十四节课 文件包含漏洞防御
- MariaDB Galera Cluster集群搭建
- show engine innodb status
- ctfshow—web—web3
- Windows10下Canvas对象获得屏幕坐标不正确的原因排查与处理
- nodejs中使用worker_threads来创建新的线程
- 创建Django REST framework工程