phpyun-expect.class.php任意文件

漏洞信息

公开时间: 2017/08

影响版本: 4.3

利用难度: 2

挖掘难度: 2

漏洞说明

漏洞出现的原因是在于没有对数据进行很好的校验,可以直接插入其他文件的路径。同时在进行数据更新时,没有进行任何的检查,会直接删除对应路径。这样就导致了任意文件删除漏洞了。

漏洞分析

漏洞文件是phpyun/uploads/member/user/model/expect.class.php。首先分析其中的saveexpect_action()函数。

可以看到当$eid==""时就会直接进入到$nid=$this->obj->insert_into("resume_expect",$_POST);进行插入操作。跟踪进入到insert_into()中。

其中存在过滤代码。但是escape_string()也仅仅只是调用了mysql_escape_string(),对于我们输入的形如../../.../path/to/file没有任何的作用,所以这个过滤对于我们是完全没有影响的。而DB_insert_once()的代码如下:

function DB_insert_once($tablename, $value){

if(in_array($tablename,$this->sitetable) && strpos($value,'`did`')===false){

$value.=",`did`='".$this->config['did']."'";

}

$SQL = "INSERT INTO `" . $this->def . $tablename . "` SET ".$value;

$this->db->query("set sql_mode=''");

$this->db->query($SQL);

$nid= $this->db->insert_id();

return $nid;

}

拼接查询,也没有进行任何的过滤。那么我们分析一下整个POST的数据传输的过程。如下:

整个数据传入的过程只是使用了mysql_escape_string()进行过滤,所以对于我们的payload的出入没有任何影响。既然我们可以在resume_expect中任意写入,接下来就需要找一个任意文件删除了。分析saveannex_action()函数:

我们发现,首先判断是否有文件上传。判断通过之后查询resume_expect表,得到记录annex之后直接进行删除操作,没有进行任何的过滤。

如此通过利用saveexpect_action()向annex中写入文件路径,然后利用saveannex_action()进行文件删除,就完成了任意文件删除的操作。

漏洞复现

增加记录

通过编辑求职意向,得到saveexpect的请求包

得到的请求包如下:

URL: http://localhost/member/index.php?c=expect&act=saveexpect

POST: hy=35&job_classid=47&provinceid=2&cityid=52&three_cityid=500&minsalary=5000&maxsalary=8000&jobstatus=116&type=57&report=45&eid=1&submit=1&dom_sort=

此时我们需要增加annex字段,值为我们需要删除文件的路径。如下:

数据库中多存在一条记录:

删除文件

通过编辑附件简历,点击保存按钮时获取到saveannex_action的请求包:

用burp截获请求包,修改其中的eid的值

分析saveannex_action()中的执行代码,发现的确是顺利地进行了删除操作。

至此,任意文件删除的漏洞分析完毕。

漏洞修复

phpyun对这个漏洞的修复也是十分的粗暴,直接删除了saveannex_action()这个方法的代码,这样就不存在unlink的操作了。

总结

总的来说,这个漏洞是一个比较常规的任意文件删除漏洞。

php任意文件删除漏洞,myblog/phpyun4.3任意文件删除漏洞.md at master · source-trace/myblog · GitHub...相关推荐

  1. 通达+oa+php+文件+乱,通达OA任意文件删除/OA未授权访问+任意文件上传RCE漏洞复现...

    0x00 简介 通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠.数据存取集中控制,避免了数据泄漏的可能.提供数据备份工具,保护系统数据安全.多级 ...

  2. struts2 ajax上传文件 file空_WordPress插件漏洞分析:WPDiscuz任意文件上传漏洞

    写在前面的话 就在不久之前,Wordfence的威胁情报团队在一款名叫wpDiscuz的Wordpress评论插件中发现了一个高危漏洞,而这款插件目前已有超过80000个网站在使用了.这个漏洞将允许未 ...

  3. php定时执行代码漏洞_【漏洞风险提示】Drupal任意PHP代码执行漏洞通告

    漏洞描述 Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成. 2020年11月25日,Drupal发布了Drupa ...

  4. linux 编辑文件删除不了怎么办,Linux中文件/文件夹无法删除的解决方案

    最近我们的 普通删除 如果文件是当前用户的,那么使用 rm 命令就可以删除 rm -rf file.sh 如果无法删除,则尝试使用 root 用户删除,如果无法删除那么请看下面的说明. 需要了解的命令 ...

  5. Apache Commons Fileupload 漏洞,可恶意操作文件

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | spoock 来源 | https://tinyurl.com/y34djpar ...

  6. 1.4 File类(文件操作类)获取文件属性,创建和删除文件\目录,遍历目录

    在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成.File 类定义了一些方法来操作文件,如新 ...

  7. mac按文件名查找文件_如何在Mac上查找和删除大文件

    mac按文件名查找文件 Freeing up disk space on a full hard drive can be difficult, especially when it's full o ...

  8. 计算机本地用户删除后怎么恢复,Default User文件夹被删了怎样恢复

    满意答案 opposities 2013.06.06 采纳率:80%    等级:24 已帮助:17327人 1.开机后出现"Windows 不能加载本地存储的配置文件.此问题的可能原因是安 ...

  9. CVE-2021-3156:隐藏10年之久的 Sudo 漏洞,可使任意用户获得root 权限(详述)

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Qualys 公司的研究团队在几乎所有主流 Unix 类操作系统都部署的 sudo 中发现了一个隐藏近10年之久的堆溢出漏洞,可导致任 ...

最新文章

  1. 云答题微信小程序 实现 前端加后台管理
  2. 没有任何基础学编程从哪开始_没有任何的绘画基础,该怎么学绘画?
  3. php登录半透明,WordPress透明OAuth 1.0使用PHP登录
  4. 从零开始用TensorFlow搭建卷积神经网络
  5. JAVA运行时异常及检查式异常
  6. c语言while找rn,STM32Fatfs遍历文件(C语言实现)
  7. Linux Shell脚本专栏_一键查看服务器的利用率_04
  8. 【英语学习】【Level 07】U01 Making friends L3 Do you eat here a lot?
  9. python给定起始和结束日期,如何得到中间所有日期
  10. 财务报销网上预审单html,网上财务报销审批系统设计与开发.pdf
  11. 支持mysql8的客户端_mysql8 参考手册--mysql客户端帮助
  12. keras系列︱Sequential与Model模型、keras基本结构功能(一)
  13. caffe安装编译问题-ImportError: No module named caffe
  14. [转]C++异常处理 4
  15. Word 公式编辑器: 快捷键
  16. 我在垃圾场捡到一个黑匣子,拆给大家看看
  17. 日期倒计时App——SpecialDay
  18. Go语言学习教程(二)
  19. MacbookPro 2015 13-ich 成功更换硬盘的方案(intel 760p 1T)
  20. 初中数学503个必考知识点_初中数学:21个必考知识点+重难点!打印背熟,3年不下130+!...

热门文章

  1. 数据库视图的创建及使用
  2. 如何通过上证信息接入通达信l2接口行情之后将原始数据进行备份?
  3. 1.浮动 float
  4. DVWA SQL注入
  5. 如何解决笔记本电脑---网络状态未知 依赖服务或组无法启动
  6. Android实现自定义锁屏控制
  7. SpringBoot笔记(主程序类@SpringBootApplication详解)
  8. php 数据库万能引擎类,ADODB PHP 数据库万能引擎类
  9. 美国网红python微博_网红Python的正确打开方式
  10. 第三期_Metasploit 介绍《Metasploit Unleashed Simplified Chinese version(Metasploit官方文档教程中文版)》