专栏首页FreeBuf记对OpenSNS的一次代码审计

记对OpenSNS的一次代码审计

我在FreeBuf上每天都可以学到很多新思路新技术,感谢这个平台,为了回馈FreeBuf的小伙伴们,写下这篇文章,希望在可以为奋斗在网络安全路上的小伙伴们提供一些新奇小思路,其实挖洞并不难,也希望大家能把分享的精神发扬光大。

概述

OpenSNS是想天科技开发的一款综合性社交软件。您可以使用OpenSNS快速搭建一个类似于新浪微博一样的功能强大的社交网站。您的社交网站也可以在微信中被访问,还支持苹果和安卓手机通过APP的形式使用。除此之外,OpenSNS还提供云市场进行功能扩展,大量的扩展让你的网站如虎添翼。官网:http://www.opensns.cn/

相关环境

源码信息:OpenSNS开源版

漏洞类型:后台getshell

下载地址:http://www.opensns.cn/home/index/download.html

漏洞文件:./Application/Admin/Controller/ThemeController.class.php 第170行

漏洞原理

程序在上传zip文件时,自动对zip文件进行解压没有对解压出文件的内容进行过滤就直接写入硬盘。

漏洞分析

代码中对上传文件进行了后缀名过滤,对非法尾缀名文件进行了过滤,过两次成功后进行了解压,但是并没有对解压后的文件内容进行过滤直接写入了硬盘导致了漏洞的存在

漏洞复现

1. 打开网站后台找到模板上传位置:

2. 配置一个压缩包,压缩包里是一句话木马:

3. 选择上传:

4.上传成功确认复现:

5. 上菜刀连一下:

解决方案

对上传模板文件进行限制或禁止前台访问该目录。

结语

很多刚刚入坑的萌新们认为代码审计似乎很难,想挖到漏洞似乎只有大佬们才能实现,但是其实我想说挖到属于自己的漏洞其实并不难,需要的是你能够平静下急功近利的心,耐得住漏洞挖掘中的乏味,不断去磨练自己的意志,增长自己的经验,相信自己,你是醉棒的,你也可以成为别人眼中的大佬!

*本文作者:chenchuan,本文属 FreeBuf 原创奖励计划,未经许可禁止转载

本文分享自微信公众号 - FreeBuf(freebuf),作者:chenchuan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个和任天堂游戏机有关的0-day漏洞,可能对大多Linux系统造成影响

    上个月,我们发布过一篇相关红白机的Ubuntu漏洞,利用恶意构建的红白机音乐文件就能触发——这是著名安全专家Chris Evans的杰作;实际上,超任也存在这种...

    FB客服
  • 潜伏7年的Linux内核漏洞CVE-2017-2636曝光,可本地提权

    又一个古老的Linux内核漏洞被曝光!这次的漏洞可以追溯到2009年,影响的linux发行版包括Red Hat、Debian、Fedora、OpenSUSE和U...

    FB客服
  • HackerOne:中国白帽子的收入增长幅度最大

    HackerOne 发布了第四份《黑客驱动安全报告》。报告指出,全球加大了对漏洞奖励计划的投入,亚太区增加了93%,拉美增加了29%。全球所有漏洞奖励计划颁发的...

    FB客服
  • 米斯特白帽培训讲义 漏洞篇 文件上传

    其中,浏览器通过上传页面将文件储存到服务器中。一般这些上传页面都会有限制(比如限制格式为jpg/gif/png等等,或者限制文件大小)。

    ApacheCN_飞龙
  • chromium最近几个版本的改动

    Chrome 57 Beta: 1,css grid layout基本完成 2,Media Session API 3,视频全屏的时候锁住屏幕 4,setT...

    龙泉寺扫地僧
  • Reporting Service报表开发

           项目中需要用到报表,经过技术验证和成本方面的考虑,最后决定使用Reporting Service,因此在这里把开发中的一些故事记下来,以备后用。 ...

    JadePeng
  • 精讲RestTemplate第3篇-GET请求使用方法详解

    二者的主要区别在于,getForObject()返回值是HTTP协议的响应体。getForEntity()返回的是ResponseEntity,Response...

    字母哥博客
  • Flink on Yarn / K8s 原理剖析及实践

    本文根据 Apache Flink 进阶篇系列直播课程整理而成,由阿里巴巴技术专家周凯波(宝牛)分享,主要介绍 Flink on Yarn / K8s 的原理及...

    zhisheng
  • C/C+的角角落落 第二辑 002

    使用Windows API构建窗体应用 就历史来说,使用纯API开发窗体应用程序是上个世纪80年代以前的事情了,开发应用程序的人需要使用大量接近系统内核的API...

    企鹅号小编
  • Python打包GUI界面组件汇总,Tkinter(TK)实例代码

    Tkinter是python自带的gui界面工具,作为非常强大的内置库tkinter,利用它可以很轻松做出一些简易的UI界面,Tkinter中给我们提供了15种...

    二爷

扫码关注云+社区

领取腾讯云代金券