专栏首页FreeBuf我是如何通过CSRF拿到Shell的

我是如何通过CSRF拿到Shell的

织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,目前的版本无论在功能,还是在易用性方面,都有了长足的发展和进步,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用本系统。

最近我在搭建这个系统的时候偶然间发现了一个有趣的现象,织梦的后台竟然有一个可以直接执行SQL语句的功能,出于职业敏感,能直接执行SQL语句的地方往往会有一些漏洞。又经过一番查找发现了它后台存在一个CSRF的漏洞,一般情况下像这种漏洞都是不怎么能引起人们的关注的,毕竟是要通过交互才能起作用,而且起的作用还不大。以为到此就结束了吗?并不是。

这里根本形不成一个有效的攻击链,不过我又发现了一个很有意思的地方,这个cms是可以在前台直接提交友链申请的,那么问题来了?你提交了友链申请管理员审核的时候怎么可能不去浏览一下你的网站。于是有了下面的一套getshell的流程。

受影响的版本<=官方最新版本(V57UTF8SP2)这是一个0day哦!!

实验环境 :win10,wamp

1.首先我们构造一个向数据库中插入SHELL语句的恶意页面

(这里我多次清除cookie,多次关闭浏览器进行测试发现,该页面的效果不受其他因素影响均可正常执行),这段代码的作用就是像数据库中插入我们的shell code。

页面的代码如下:

2.此时我将该页面放置在我自己的服务器上

这里就可以随便放置一个地方,为了更加形象,你可以在页面上做一些操作,比如加上JS代码使得管理员访问页面的时候不会跳转,这样更神不知鬼不觉了。

3.然后我去受害网站上提交一个友链申请

将我自己网站上的恶意页面链接填入。这个链接直接对应你构造好的恶意页面。

4.然后提交,等待管理员审核

管理员审核友链时定会查看友链所链接的内容。(管理员既然可以看到该链接证明此时一定处于登陆状态)

5.只要是管理员查看了我们申请友链的链接那么就触发了恶意代码的执行

此时我们可以看到数据库中被插入了恶意代码。这里的代码可以自定义,根据你想做的操作自定义就可以了。这里我就是做实验,就是用了<?php phpinfo() ?>

6.此时无论管理员通过或者是不通过,我们的代码已经插入

此时我们构造生成shell的恶意页面,页面代码如下,构造完成之后同样放在我们自己的服务器上。(这里构造时,我们需要知道网站的路径,这里知道相对路径或者时绝对路径都是可以的。路径的获取方式:一个网站的搭建大多数采用 phpstudy wamp 或者原生态的在PHP下的www目录,这里很好猜测。或者直接请求一个网站上不存在的资源一般会爆出相对路径,或者去访问一篇文章分析路径,再或者用AWVS直接拿到路径,反正这里获取路径的方式特别多)

下面这段代码的作用是把我们刚刚插入的shell code生成一个php页面。

7.此时我们如上步骤3所示,提交一个该页面的友链申请

当管理员查看该页面时触发代码的执行,在服务器端生成一个我们自定义名称的shell。然后我们去访问我们的SHELL。可以看到执行成功。

这就是在一次测试环境中找到的一个逻辑漏洞,有时候我们会经常发现一些微不足道的小漏洞之类的,单个的看起来是没有什么作用但是多个微不足道的小漏洞结合起来往往会收到超出预期的效果。

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

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

原始发表时间:2017-09-22

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2018年RSA创新安全产品“全球20强”榜单揭晓

    2018年4月下旬,美国著名IT杂志CRN评选出今年RSA会议上发布的20个最新最热门的安全产品。

    FB客服
  • 利用OAM加密缺陷漏洞构造任意用户身份测试

    SEC Consult 团队发现了 Oracle Access Manager (OAM) 上的一种有意思的加密格式,本文中,我们将演示如何用这种加密方式的微小...

    FB客服
  • 多伦多大学:UC浏览器收集并发送用户隐私数据分析报告

    0x01 问题概要 UC浏览器是中国和印度地区最为流行的web浏览器,也是全球第四大移动浏览器,仅次于chrome、Android浏览器和Safari浏览器,目...

    FB客服
  • 自己动手打造前端性能监控系统

    我们从三个各方面,前端上报,数据收集和入库,数据展示来介绍了如何打造一个测速系统。

    QQ音乐前端团队
  • PageRank算法

    PageRank,网页排名,又称网页级别,传说中是PageRank算法拯救了谷歌,它是根据页面之间的超链接计算的技术,作为网页排名的要素之一。它通过网络浩瀚的超...

    用户3003813
  • 【腾讯游戏人生】微信小程序开发总结

    目前【腾讯游戏人生】小程序已经发布上线,大家可以扫小程序码进行体验。接下来主要介绍在开发该款小程序过程中的一些思考和积累。

    一时两无
  • 使用easyswoole开发多进程多协程队列式爬虫

    这里我推荐http://www.querylist.cc/  可使用jq的语法选择html页面的元素,非常好用

    仙士可
  • 微信小程序动态设置标题

    德顺
  • 基于云开发开发 Web 应用(二):界面 UI 开发

    根据实际的工作拆分组件的化,我需要有一个 Layout 组件来负责整体的页面的环境渲染。但是,考虑到组件的复用,于是决定将首页的 Title 进行优化,使首页和...

    白宦成
  • CMS-需求分析

    CMS (Content Management System)即内容管理系统,不同的项目对CMS的定位不同,比如:一个在线教育网 站,有些公司认为CMS系统是对...

    cwl_java

扫码关注云+社区

领取腾讯云代金券