Drupal 7.31SQL注入getshell漏洞利用详解及EXP
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相关推荐
- Shiro反序列化漏洞利用详解(Shiro-550+Shiro-721)
Shiro反序列化漏洞利用详解(Shiro-550+Shiro-721) Shiro简介 Apache Shiro 是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能,Shiro ...
- 计算机组织与结构poc,CPU漏洞原理详解以及POC代码分享
原标题:CPU漏洞原理详解以及POC代码分享 首先,这个漏洞已经公布近一周时间了,看到各大媒体.公众号到处在宣传,本打算不再发布类似信息,但是发现很多媒体的报道达到了一个目的--几乎所有的CPU都有漏 ...
- 依赖注入容器Autofac的详解[转]
依赖注入容器Autofac的详解 发表于 2011 年 09 月 22 日 由 renfengbin 分享到:GMAIL邮箱 Hotmail邮箱 delicious digg Auto ...
- 【Spring】Spring 自动注入(autowire)详解
1.概述 转载:添加链接描述 2. 手动注入的不足 [Spring]Spring 依赖注入之手动注入 上篇文章中介绍了依赖注入中的手动注入,所谓手动注入是指在xml中采用硬编码的方式来配置注入的对象, ...
- 合成大西瓜漏洞作弊详解,教你如何生成三个大西瓜
网红游戏合成大西瓜漏洞作弊详解,教你如何生成轻松三个大西瓜 声明 先决条件 打开chrome 打开chrome开发者工具 打开src目录下的 project.js文件 点击左下角花括号,优化显示格式 ...
- ossim监控mysql_基于OSSIM平台的漏洞扫描详解
Ossim 中漏洞扫描详解 Openvas是一套开源漏洞扫描系统,如果手动搭建需要复杂的过程,花费不少人力和时间成本,因为它是套免费的漏洞扫描系统,功能上不逊色于商业版的漏洞扫描器,受到不少用户的青睐 ...
- 依赖注入神器:Dagger2详解系列
依赖注入神器:Dagger2详解系列 序言 Dagger2是啥 Dagger2是啥,Google告诉我们: Dagger is a fully static, compile-time depende ...
- Spring第8篇:自动注入(autowire)详解
本文内容 手动注入的不足 Class.isAssignableFrom方法介绍 3种自动注入方式详解及案例 按名称自动注入 按类型自动注入 按构造器进行自动注入 按类型自动注入某种类型的所有bean给 ...
- Spring系列之自动注入(autowire)详解
本文内容 手动注入的不足 Class.isAssignableFrom方法介绍 3种自动注入方式详解及案例 按名称自动注入 按类型自动注入 按构造器进行自动注入 按类型自动注入某种类型的所有bean给 ...
最新文章
- 零基础入门学习Python(17)-函数的参数
- 大咖来信 | 微软中国CTO韦青:低代码/无代码时代来了,写代码的你准备好了吗?...
- STL的erase()陷阱-迭代器失效总结
- Win 10 UWP开发系列:设置AppBarButton的图标
- JAVA设计模式:代理模式
- python 使用 sorted 对 列表嵌套元组的数据进行排序
- 安装webpack以及webpack-dev-server
- Placing a Method with Eval parameter into a DataList
- java泛型——桥方法
- Oracle数据库的Sequence(序列)
- wxpython界面切换_Python图形界面开发—wxPython库的布局管理及页面切换
- zabbix 监控使用宏自动发现网卡并进行监控
- 受够了if (ModelState.IsValid)?ActionFitlter也是一路的坑啊!
- python合并两列数据_在pandas / python中的同一数据框中将两列合并...
- 微信开始收费,一年130元起!?
- 前端页面因为过滤器出现路径不正确,css效果不展示
- 计算机中丢失python27 dll_python27.dll
- 通过高德api获取经纬度
- JDKbin目录下的众多exe文件的用途
- 前端开发相关的学习网站