隔离网络下利用.NET Ueditor漏洞Getshell
0x01 前言
关于.NET 版本的Ueditor漏洞,想必本行的从业人员都不陌生。
当ueditor/net/Controller.ashx存在的情况下,利用远程下载来拿shell,屡试不爽。且在HW类比赛项目中,结合google hacking语法,也可用来快速打点。
但倘若遇到一些特殊情况,例如HTTP请求不出网,导致无法远程下载自己VPS上的shell时,是否就无计可施呢
答案当然是否定的
0x02 正文
好吧,不废话。直接上场景:
利用目录遍历,发现了某站点存在Ueditor目录,且为存在.net漏洞的版本
先远程GET一波,结果发现 下载失败,服务端 返回了 500错误。
根据以往经验,推测此处可能是HTTP请求失败,无法建立连接导致的。
进一步验证 https://www.baidu.com/img/bd_logo1.png 同样的返回
很僵,对不对?
但其实并没有关系,DNSLog试下
当然服务端同样是500状态码,且也没那么重要
查看dnslog监听结果,发现了惊喜:DNS的请求是可以 突破隔离网络的
这说明了问题:
- 1.目标网络中是有相应的DNS服务器的
- 2.拿到入口后 可以利用DNS隧道 让主机上线
当然主机上线是后话,先看如何才能打下入口。
简单思考了下,既然无法外网来下载webshell,那能否通过此处请求来ssrf内网站点或者127.0.0.1来getshell呢
首先这里能否SSRF还不确定,我知道php某版本的有 而.Net不熟。。逃
当然,我也没直接尝试127.0.0.1,原因如下:
外网的端口很可能是随机转发出来的,对应在真实主机上开放的端口号,无法直接确定。另外一点,即使确定了端口号,可能也会面临着目录的问题。
想到这里,又考虑到有DNS,便想到可否利用 请求自身url,来进行shell的下载
先尝试下,利用目录遍历 找到个图片路径
设置souce参数为自身域名下的某个图片,发送请求。
返回 SUCCESS!!!
至此,一切都趋于明朗了。
拿shell的方式其实就简单的拆分为两个步骤:
- 上传包含shell代码的 正常图片
- 利用catchimage 漏洞,再次下载至自身服务器,改为aspx格式
上传过程略,因为正常网民都会
直接利用DNS解析问题导致的SSRF,来日自己 下载shell
菜刀图略,打完收工。
后来操作就是DNS隧道让主机上线了
0x03 总结
文中技巧其实并无特别之处,但是这里想表述的是(也是最近的一点感悟)
很多时候我们熟悉了针对某些问题的解决方式,这些方式也可以称之为经验。经验固然是好的,就像捷径。可以很快速的给予我们问题的答案。但另一方面讲,它又像牢笼,将我们的思维限制在习惯舒适的范围中。
渗透是艺术活,需要我们投入耐心 精力,但更需要 精致和灵感。
遇到问题时,多思考,解决了 便是进步。