- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
phpcmsv9.6注册功能远程getshell0day漏.PDF
phpcms v9.6 注册功能远程getshell 0day 漏洞分析
简介
phpcms 在国内应该使用很多,前几天被爆出来一个getshell 的0day,这个漏洞
无需登录即可远程直接getshell,所以影响很大。
phpcms 官方4 月12 日发布了9.6.1 版本,对漏洞进行了补丁修复。
漏洞分析:
在/phpcms/modules/member/index.php 文件register 函数处:
这里有一个$member_setting = getcache(member_setting);
就是从/caches/caches_member/caches_data/member_setting.cache.php 文件
中取出用户注册相关的配置信息:
然后我们继续/phpcms/modules/member/index.php 文件register 函数,前面的
一大部分都是根据member_setting 的配置信息来判断用户注册过程的合法性,
对注册进行验证的过程。
一直到下面的内容,130 行:
当 用户配置信息中choosemodel=1 时,加载了
/caches/caches_model/caches_data/member_input.class.php 和
/caches/caches_model/caches_data/member_update.class.php 文件,然后实
例化了member_input 类,并且传入$userinfo[modelid]参数,这里的
$userinfo[modelid]就是$_POST[modelid],
然后$_POST[info]经过new_html_special_chars 函数处理,
new_html_special_chars 函数在文件
\phpcms\libs\functions\global.func.php 中,他的功能就是返回经
htmlspecialchars 处理过的字符串或数组:
经过处理的$_POST[info] 进入到$member_input-get()函数,跟进get 函数,
文件/caches/caches_model/caches_data/member_input.class.php
这里在get 函数中,将data=$_POST[info]循环去除key 和value 内容
这里的$this-fields 就在构造函数中:
也是获取了caches 中的配置信息,这里的$modelid 就是我们上面再register
函数中实例化member_input 类时传入的$userinfo[modelid]参数,也就是
$_POST[modelid]),当$_POST[modelid])=1 时,就是文件
/caches/caches_model/caches_data/model_field_1.cache.php
然后当这里的$field 也就是我们传入的$_POST[info]中key,等于content
时,
$func = $this-fields[$field][formtype] =
$this-fields[content][formtype] = editor,
然后$value = $this-$func($field, $value) = editor($field, $value ),
来看看editor 函数,就在get 函数下面:
$value 变量和content进入了download 函数,这里的content值也就是上面
我们为什么要将$field 设置为content的原因
跟进download 函数,$this-attachment 也是在构造函数中定义:
$this-attachment = new attachment(content,0,$this-siteid),在文
件/phpcms/libs/classes/attachment.class.php
在download 函数的153-160 行:
这里的$string = new_stripslashes($value),然后通过正则匹配$string,正
则里面的$ext = gif|jpg|jpeg|bmp|png,
如果匹配到正则中的内容,就将第三个括号的匹配内容取出来,再进入
$this-fillurl 函数,对url 进行处理。
我们先来看看一下这个正则:
/(href|src)=([\|]?)([^ \]+\.($ext))\\2/i,画个图解释一下,一目了
然:
所以$string 也就是我们post 进来
您可能关注的文档
- OutlineI–.PDF
- OutlookforMonetaryPolicy.PDF
- Overture.PDF
- P6-sql安装手册.pdf
- PA866K-42AI单相电流表说明书.PDF
- Pacijentovaoralnarehabilitacijas.PDF
- Package'iontree'.PDF
- Package'RWeka'.PDF
- Packagejava.sql.PDF
- Paper60-28.PDF
- 2025届江苏省海安中学物理高二上期末学业水平测试试题含解析.doc
- 2025届广东省广州市铁一中学高二物理第一学期期末学业水平测试试题含解析.doc
- 广东省广州市第二外国语学校2025届高二物理第一学期期末达标检测模拟试题含解析.doc
- 2025届湖南省衡阳二十六中物理高一上期末经典模拟试题含解析.doc
- 2025届广东省惠阳高级中学物理高二上期中学业质量监测试题含解析.doc
- 2025届陕西省韩城市象山中学物理高一第一学期期中教学质量检测试题含解析.doc
- 2025届河南省漯河市高一物理第一学期期末教学质量检测模拟试题含解析.doc
- 2025届北京市海淀清华附中物理高一第一学期期中检测试题含解析.doc
- 2025届四川省广安市武胜烈面中学物理高二上期末监测模拟试题含解析.doc
- 上海市市北初级中学2025届物理高二上期末检测模拟试题含解析.doc
文档评论(0)