在最近Memcache服务被利用发动反射型DDoS攻击事件之后,我想到了之前我发现的一例Memcache相关的赏金漏洞,这是一个价值$2500美金的Pornhub网站Memcache漏洞,该漏洞已作为典型,被收录在Peter Yaworski出版的新书《Web Hacking 101》之中。漏洞发现过程很简单,只是一条Nmap扫描命令,但就是这样,只要你能认真仔细,总能发现些什么。
漏洞介绍
难度级别: 低
涉及网站: stage.pornhub.com
漏洞提交地址: https://hackerone.com/reports/119871
漏洞提交日期:2016.3.1
漏洞赏金:$2500美金
前期分析
和大多数漏洞分析和渗透测试一样,对目标范围的前期踩点侦查是必须过程,这里Pornhub给出的测试范围是:
*.pornhub.com
哦,竟然是所有相关域名,这种宽泛的范围真是太好了!配合我的超强百万子域名组合字典,拿出以下DNS工具,来一通子域名扫描。
长话短说,不一会工夫,我就收获了将近90个域名,接下来要做的就是用Eyewitness对这些子域名进行资产识别,通过一个URL列表,Eyewitness可自动查询URL对应网站的截图、RDP服务、Open VNC服务器以及一些服务器头部的信息、甚至是可识别的默认凭据等,最终会生成一个详细的html报告。
偶然的端口发现
之后,我用NMAP对一个选定域名stage.pornhub.com进行探测,发现它上面开放了多个端口,这让我非常感兴趣,在使用nslookup命令查看后,发现了其对应IP:
nslookup stage.pornhub.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: stage.pornhub.com
Address: 31.192.117.70
好吧,有了IP地址,我们继续来开干吧:
nmap -sSV -p- 31.192.117.70 -oA stage_ph -T4 &
Starting Nmap 6.47 ( http://nmap.org )
Nmap scan report for 31.192.117.70
Host is up (0.017s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE VERSION
80/tcp open http nginx
443/tcp open http nginx
60893/tcp open memcache
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 22.73 seconds
看到结果了嘛,60893端口对应的memcache是什么鬼?利用github wiki对其了解之后,我对其执行命令和相关信息有了一些认识。
漏洞发现
Memcache是一个高性能的分布式的内存key-value对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、API调用、文件渲染以及数据库检索等结果。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。目前该服务被大量运用于各种云服务中,用于对网站系统进行加速。
这意味着什么呢? 但是有一点,这种服务端口肯定不能暴露在互联网上啊!不如,我连上去看看如何。
好吧,用netcat直连个试试:
nc 31.192.117.70 60893 -v
version
VERSION 2.1.1r-49-gbe05158
stats
STAT pid 8141
--SNIP--
STAT evictions 0
END
我保证没有恶意,仅只是进行了几个简单的命令测试而已。由于该memcache服务能正常响应执行命令,比如能执行某些系统清除命令并可导致溢出错误,因此,我决定赶紧把它上报给Pornhub。最终,获得了Pornhub官方$2500美金奖励。
*参考来源:zsec,FreeBuf小编clouds编译,转载请注明来自FreeBuf.COM