0x00

这个漏洞威力确实很大,而且Drupal用的也比较多,使用Fuzzing跑字典应该可以扫出很多漏洞主机,但是做批量可能会对对方网站造成很大的损失,所以我也就只是写个Exp不再深入下去。

0x01

关于漏洞的原理和POC在我的博客上已经有文章进行解释,这里只是着重说一下利用过程。配合POC的效果,我主要是从远程代码执行和GetShell方面去做的利用。

远程代码执行利用:

1.使用超级管理员进行登录

2.开启站点PHP Filter功能

3.新建aticle,选择PHP_CODE模式(编辑php代码)并预览

4.预览页面载入后就会执行代码

对应EXP中DrupalSQLin类的codeExecution函数,这个函数所做的事情就是把上述过程自动化。我编写这个部分比较费劲的 是,requests发送attachment遇到了问题,没有找到比较合适的Python模块,最后实在没办法就自己对Post数据包进行拼接,拼接的 时候要小心,建议遇到同样问题的朋友参考一下RFC1867协议规范,拼接结构如下:

在调试程序时,使用burpsuite进行辅助很有效果,通过burpsuite你可以清楚看到每一次交互的数据包格式与字段内容。

GetShell利用:

  • 使用超级管理员进行登录
  • 开启网站的PHP Filter功能
  • 新建block,编辑PHP代码
  • 使用PHP_CODE进行保存

Post请求构造如下:

使用python进行发包,有个缺点就是不直观,我们无法获知我们的数据包构造是否正确,这时候可以使用requests模块的proxies参数,将代理设置为burpsuite,然后就可以分析调试了。不过,使用新建block的方法获取shell可能权限比较小。

在构造请求包的时候,有两个字段是form_build_id和form_token,他们是Drupal自带的防止CSRF所使用的token(类似于Django中的csrf防护)。发包之前必须找到这两个东西,使用小型爬虫即可。

还有一个关键点就是模拟登陆后要保存cookie,因为后续的攻击利用都要携带admin的cookie,否则会执行出错。

0x02

命令执行效果:本地监听端口获取反弹shell

测试环境:本地测试

程序执行:如下图

由于反弹shell的基础是socket,所以通信双发没有完成通信会发生阻塞,这里的表现是接收反弹shell的过程中主线程会阻塞。

反弹出shell的效果:

0x03

这个漏洞威力大,带给对方主机的危害也大,且涉及到用户覆盖以及改变网站原有设置的问题。

如果想要隐蔽地利用,那么需要做很多辅助工作,比如在开启php filter的过程中,涉及到小型爬虫抓取网站原有的配置信息。还有就是管理员的获取方式进行改进,比如插入用户之后将用户加入管理员权限,这个本身我没有测试过,但是是可行的。

接下来就是放出关键部位的代码:

模拟登录函数

开启PHP Filter:

代码执行:

0x04

向这种关于Web的exp写起来真的是不太顺畅,因为要处理很多细节,比如模拟登陆、验证码、csrf的token、甚至徒手拼接POST attachment也不是没有可能。

关于这个漏洞利用,其实还有一种方法,就是使用了Drupal的回调机制,利用SQL Injection在menu_router表中插入一些构造好的数据,配合最终构成了RCE,然后就是各种花式getshell了。由于篇幅有限,我这里就不再分析了。

最后,这个EXP对网站构成的危害比较大(覆盖用户名并且有可能改变网站结构),所以也只是写出来供大家学习交流使用,重点是过程,不要用于非法用途。

相关文件下载:

链接:http://pan.baidu.com/s/1eQ3V7Bc 密码:s9yi

Drupal 7.31SQL注入getshell漏洞利用详解及EXP相关推荐

  1. Shiro反序列化漏洞利用详解(Shiro-550+Shiro-721)

    Shiro反序列化漏洞利用详解(Shiro-550+Shiro-721) Shiro简介 Apache Shiro 是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能,Shiro ...

  2. 计算机组织与结构poc,CPU漏洞原理详解以及POC代码分享

    原标题:CPU漏洞原理详解以及POC代码分享 首先,这个漏洞已经公布近一周时间了,看到各大媒体.公众号到处在宣传,本打算不再发布类似信息,但是发现很多媒体的报道达到了一个目的--几乎所有的CPU都有漏 ...

  3. 依赖注入容器Autofac的详解[转]

    依赖注入容器Autofac的详解 发表于 2011 年 09 月 22 日 由 renfengbin 分享到:GMAIL邮箱         Hotmail邮箱 delicious digg Auto ...

  4. 【Spring】Spring 自动注入(autowire)详解

    1.概述 转载:添加链接描述 2. 手动注入的不足 [Spring]Spring 依赖注入之手动注入 上篇文章中介绍了依赖注入中的手动注入,所谓手动注入是指在xml中采用硬编码的方式来配置注入的对象, ...

  5. 合成大西瓜漏洞作弊详解,教你如何生成三个大西瓜

    网红游戏合成大西瓜漏洞作弊详解,教你如何生成轻松三个大西瓜 声明 先决条件 打开chrome 打开chrome开发者工具 打开src目录下的 project.js文件 点击左下角花括号,优化显示格式 ...

  6. ossim监控mysql_基于OSSIM平台的漏洞扫描详解

    Ossim 中漏洞扫描详解 Openvas是一套开源漏洞扫描系统,如果手动搭建需要复杂的过程,花费不少人力和时间成本,因为它是套免费的漏洞扫描系统,功能上不逊色于商业版的漏洞扫描器,受到不少用户的青睐 ...

  7. 依赖注入神器:Dagger2详解系列

    依赖注入神器:Dagger2详解系列 序言 Dagger2是啥 Dagger2是啥,Google告诉我们: Dagger is a fully static, compile-time depende ...

  8. Spring第8篇:自动注入(autowire)详解

    本文内容 手动注入的不足 Class.isAssignableFrom方法介绍 3种自动注入方式详解及案例 按名称自动注入 按类型自动注入 按构造器进行自动注入 按类型自动注入某种类型的所有bean给 ...

  9. Spring系列之自动注入(autowire)详解

    本文内容 手动注入的不足 Class.isAssignableFrom方法介绍 3种自动注入方式详解及案例 按名称自动注入 按类型自动注入 按构造器进行自动注入 按类型自动注入某种类型的所有bean给 ...

最新文章

  1. 零基础入门学习Python(17)-函数的参数
  2. 大咖来信 | 微软中国CTO韦青:低代码/无代码时代来了,写代码的你准备好了吗?...
  3. STL的erase()陷阱-迭代器失效总结
  4. Win 10 UWP开发系列:设置AppBarButton的图标
  5. JAVA设计模式:代理模式
  6. python 使用 sorted 对 列表嵌套元组的数据进行排序
  7. 安装webpack以及webpack-dev-server
  8. Placing a Method with Eval parameter into a DataList
  9. java泛型——桥方法
  10. Oracle数据库的Sequence(序列)
  11. wxpython界面切换_Python图形界面开发—wxPython库的布局管理及页面切换
  12. zabbix 监控使用宏自动发现网卡并进行监控
  13. 受够了if (ModelState.IsValid)?ActionFitlter也是一路的坑啊!
  14. python合并两列数据_在pandas / python中的同一数据框中将两列合并...
  15. 微信开始收费,一年130元起!?
  16. 前端页面因为过滤器出现路径不正确,css效果不展示
  17. 计算机中丢失python27 dll_python27.dll
  18. 通过高德api获取经纬度
  19. JDKbin目录下的众多exe文件的用途
  20. 前端开发相关的学习网站

热门文章

  1. 企业要做好安全遵从的五个实用技巧
  2. 《模式识别原理及工程应用》——第2章 基于贝叶斯决策理论的分类器 2.1 分类器的描述方法...
  3. eclipse的编辑器样式风格设置
  4. 移动站点生成便捷之路:百度SiteApp
  5. linux每日命令(1):which
  6. 一、K3 WISE 实施顾问教程《进度1-谈谈实施顾问》
  7. 从源码分析常见的基于Array的数据结构动态扩容机制
  8. 设计模式系列之「装饰模式」
  9. Linux 下编译安装OpenCV【转】
  10. JAVA 中的null