您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMS某处设计缺陷authkey泄露的解决方法
章学共2025-05-29phpcms教程已有6人查阅
导读在分析几个phpcms的漏洞就换分析其他的,换换口味。swfupload上传页面输出了MD5(auth_key+sess_id)。
在分析几个phpcms的漏洞就换分析其他的,换换口味。swfupload上传页面输出了MD5(auth_key+sess_id)。
函数位于 /phpcms/modules/attachment/functions/global.func.php 第45-91行 可以看到$init参数的值为一段js代码。
看到这里: 混杂着$sess_id和$swf_auth_key的值
在跟踪到上面去$swf_auth_key的值。 $swf_auth_key是由auth_key和$sess_id联合在一起共同进行md5加密。并且$swf_auth_key,$sess_id都输出到页面上了。
跟踪这整个函数,看看哪里引用了。
限制:在线投稿(需要后台开启)
在发布投稿的时候,有个图片上传,url就位于那里。
查看源码就能看到输出在页面的值了。
记录下来两个值。
接着看到第二个漏洞点。
位于 /phpcms/modules/content/down.php 第83-124行。 看到开头的这句话: 利用auth_key和HTTP_USER_AGENT进行加密。UA我们本地是可以控制的,所以我们可以让UA的值与$sess_id的值相同,然后$pc_auth_key 我们也是知道的。
看到这句, $a_k是利用GET过来的,$pc_auth_key我们又是知道的,所以我们可以本地生成经过加密$a_k的值 先包含sys_auth函数,然后构造我们要下载的文件地址。
上面的那些参数是download函数需要的,具体的解释在以前文章有个这里的windows下任意文件相同
s和f参数,利用拼接来绕过检查,也就是这句:if($m) $fileurl = trim($s).trim($fileurl);
然后就能读取任意文件啦。 a_k的值是php文件加密来的,需要替换,UA是$sess_id的值,也是需要替换。
读取到的文件caches/configs/system.php 为网站放置auth_key的php文件。
有了这个auth_key,我们就能在本地混合sql语句然后加密auth_key,网站进行解码以后输出sql语句来绕过检查,然后对网站进行注入等操作。
函数位于 /phpcms/modules/attachment/functions/global.func.php 第45-91行 可以看到$init参数的值为一段js代码。
看到这里: 混杂着$sess_id和$swf_auth_key的值
在跟踪到上面去$swf_auth_key的值。 $swf_auth_key是由auth_key和$sess_id联合在一起共同进行md5加密。并且$swf_auth_key,$sess_id都输出到页面上了。
跟踪这整个函数,看看哪里引用了。
限制:在线投稿(需要后台开启)
在发布投稿的时候,有个图片上传,url就位于那里。
查看源码就能看到输出在页面的值了。
记录下来两个值。
接着看到第二个漏洞点。
位于 /phpcms/modules/content/down.php 第83-124行。 看到开头的这句话: 利用auth_key和HTTP_USER_AGENT进行加密。UA我们本地是可以控制的,所以我们可以让UA的值与$sess_id的值相同,然后$pc_auth_key 我们也是知道的。
看到这句, $a_k是利用GET过来的,$pc_auth_key我们又是知道的,所以我们可以本地生成经过加密$a_k的值 先包含sys_auth函数,然后构造我们要下载的文件地址。
上面的那些参数是download函数需要的,具体的解释在以前文章有个这里的windows下任意文件相同
s和f参数,利用拼接来绕过检查,也就是这句:if($m) $fileurl = trim($s).trim($fileurl);
然后就能读取任意文件啦。 a_k的值是php文件加密来的,需要替换,UA是$sess_id的值,也是需要替换。
读取到的文件caches/configs/system.php 为网站放置auth_key的php文件。
有了这个auth_key,我们就能在本地混合sql语句然后加密auth_key,网站进行解码以后输出sql语句来绕过检查,然后对网站进行注入等操作。
本文标签:
很赞哦! (2)
上一篇:phpcms怎么添加模块
暂无内容 |
暂无内容 |
相关源码
暂无内容 |
暂无内容 |
图文教程
phpcms添加视频模块的方法
1、下载convertz802,把phpcms、statics中所有文件进行gbk->utf8的编码转换2、修改v9_player.sql,把CHARSET=gbk,改成CHARSET=utf8phpcms实现降序排列的方法
phpcms降序的实现方法:首先找到并打开“formguide_fields.class.php”文件;然后找到文件中的“listview”方法部分;接着在代码相应位置添加语句为“order by dataid desc”PHPCMS是用什么开发的?PHPCMS是ThinkPHP开发的吗
PHPCMS不是ThinkPHP开发的,可通过对比PHPCMS和ThinkPHP源码,可以出并没有使用ThinkPHP框架,并且PHPCMS官方并没有说明,该软件是基于ThinkPHP开发的。PHPCMS配置文件读取入口方法示例
PHPCMS的入口文件index.php里的代码较少,主要做了三件事,如下:代码虽少,但是将 做了很多事的框架入口文件base.php加载进来后,等于直接就进入了PHPCMS的核心。
分享笔记 (共有 0 篇笔记) |