前言作为漏洞挖掘者,遇到文件读取漏洞你会怎么做?作为一名系统维护人员,你会在系统维护主机的桌面上保存哪些重要信息?背景不久前,我接到了一个渗透测试项目,共有8个域名。leader给的deadline是2周。总觉得一个人做项目缺乏激情。我想起了我的狗友——单身狗大强。我向领导申请,我和大强一起完成了这个渗透测试项目。很快,在项目周期改为一周的前提下,我们两个人开始了工作。客户只提供了多用户系统的测试账号,没有提供管理系统的测试账号,但管理系统还在测试范围内。经过四天的努力,我和大强挖了很多漏洞,算了一下结果,有很多逻辑漏洞,也有很多系统漏洞,可以愉快的交流一下。但是,唯一缺少的是外壳。作为一个资深的漏洞挖掘者,我知道渗透测试的目的是为了发现更多的问题,而不是以壳为终。但是没有拿到shell我总觉得有点遗憾。就好比将军攻下了一座城池,却不见敌将。在整理报告的过程中,发现大强的漏洞报告中存在一个XXE漏洞,而且还是有回显。仔细研究后发现,这个界面是整个系统登录后统一的参数入口。系统解析出xml中的方法后,根据对应的方法执行响应逻辑。忍不住内心的躁动,我和大强开始通过fuzzing搜索各种敏感文件。经过多方尝试,读取了大量系统敏感信息。但是对于Getshell几乎没有任何帮助。大强差点放弃。这时,我盯着大强的电脑屏幕,在他的桌面上发现了1.txt、2.txt等文件。好巧,我的桌面也是用简单的命名方式,而且还有一些重要的临时文件。灵机一动,是不是很多人为了方便,也会在桌面上存放一些不容易记录的敏感信息。接下来,我们直接对管理桌面文件进行模糊测试。经过一番尝试,我们找到了111.txt、123.txt、pwd.txt临时文件。其中,发现pwd.txt文件中存放了一些网址和对应的账号密码,还有一些零散的字符串,看起来很像密码。这时候我和大强??笑得哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇!我和大强立即对目标主机进行了全端口服务扫描。发现这台主机有21、80、443、3389、6379、8080、8085、8086服务开启。我和大强打算用读到的6对账号密码中的一对直接登录3389。我兴奋地一次又一次地尝试。然而画风是这样的:3389输入失败。。.访问ftp失败。..进入redis失败。..由于读取的链接地址是内网系统,根本没有进入的机会。...各种服务进不去后,尝试爆破3389、ftp等服务。仍然没有结果。当我们直接访问目标地址的8085和8086端口时,并没有直接显示任何服务。但是发现8085和8086服务连通性很好。我们正在尝试通过度娘查找有关可能具有默认端口8085和8086的服务的信息。但还是一无所获。就在这时,大强叫嚣着要教管理员做人的声音也消失了。等等,这不是结束,就这样结束太仓促了。我闭上眼睛,迷迷糊糊~我好像看到有服务把这两个端口作为默认端口。经过大脑的高速运转还有一些残留的记忆。想起多年前遇到的两个管理系统treeNMS和treeDMS。默认端口是8086和8085,经过验证,这次没有让我和大强失望,是这对兄弟系统。我们利用admin账号密码组合读取XXE任意文件读取漏洞。首先成功进入treeNMS系统。登录treeNMS查看系统数据,卧槽,这个管理端是空的。Redis没有任何信息。不要惊慌,还有一个DMS系统。继续带着忐忑的心情尝试登录下一个。登录treeDMS无比精彩,大强的叫嚣又回来了。管理端有3个账号,密码通过MD5存储。经过逆查,成功找到了这两个账号的密码。直接登录。看看能不能有所收获。登录后台果然不出所料。这个产品管理后台系统还是比较脆弱的。上传的文件类型没有限制,我们通过图标设置模块,上传文件直接获取shell。当然,心中的遗憾已经得到了很好的弥补。怀着一颗心,自从我们进入后台,进入测试范围后,在客户的授权下,我们对这个后台系统做了全面的漏洞挖掘。也挖了不少漏洞。我们在项目截止日期的最后一刻完成了所有目标的测试。交出了比较完美的成绩,没有留下遗憾。虽然过程没有那么坎坷,但还是值得总结的。总结漏洞利用和利用的过程,不仅仅是发现一个漏洞,而是简单地利用漏洞可能产生的直接影响。而是不断寻找漏洞,突破思维局限,在任何可以关联的事件中找到最大程度的利用。为什么在利用和利用漏洞的过程中总觉得别人能找到一些你找不到的突破口。这个问题可能是你的见识比较狭窄,也可能是你的思维局限。所以,不要让惯性思维限制了自己能力的进步。所以,漏洞挖掘是先拼技术能力,再拼思维。技术达到一定水平后,思维决定了发展的高度。
