您的位置:首页 > 运维架构

Do Evil Things with gopher:// , Ricter · 2016/06/01 9:32

2016-06-01 19:24 387 查看

0x00 前言

Gopher 协议是 HTTP 协议出现之前,在 Internet 上常见且常用的一个协议。当然现在 Gopher 协议已经慢慢淡出历史。但是经过部分测试,发现阿里云的 libcurl 还是支持 Gopher 协议的,在实际环境中可能会有更多。

Gopher 协议可以做很多事情,特别是在 SSRF 中可以发挥很多重要的作用。利用此协议可以攻击内网的 FTP、Telnet、Redis、Memcache,也可以进行 GET、POST 请求。这无疑极大拓宽了 SSRF 的攻击面。

最大化利用 SSRF,将一个鸡肋漏洞玩的的淋漓尽致的例子也有,比如:WooYun-2016-213982:bilibili某分站从信息泄露到ssrf再到命令执行

0x01 环境

IP: 172.19.23.218
OS: CentOS 6
根目录下 1.php 内容为:

0x02 攻击内网 Redis

Redis 任意文件写入现在已经十分受到广大渗透狗们的欢迎,一般内网中会存在 root 权限运行的 Redis 服务,利用 Gopher 协议攻击内网中的 Redis,这无疑可以隔山打牛,直杀内网。

首先了解一下通常攻击 Redis 的命令,然后转化为 Gopher 可用的协议。常见的 exp 是这样的:

利用这个脚本攻击自身并抓包得到数据流:



改成适配于 Gopher 协议的 URL:

攻击:



0x03 攻击 FastCGI

一般来说 FastCGI 都是绑定在 127.0.0.1 端口上的,但是利用 Gopher+SSRF 可以完美攻击 FastCGI 执行任意命令。

首先构造 exp:



构造 Gopher 协议的 URL:

攻击:



0x04 攻击内网 Vulnerability Web

Gopher 可以模仿 POST 请求,故探测内网的时候不仅可以利用 GET 形式的 PoC(经典的 Struts2),还可以使用 POST 形式的 PoC。

一个只能 127.0.0.1 访问的 exp.php,内容为:

利用方式:

构造 Gopher 协议的 URL:

攻击:



0x05 以上

Gopher + SSRF 组合拳还有更多的姿势等待挖掘,水平有限,抛砖引玉。

0x06 参考

Gopher (protocol)
redis 远程命令执行 exploit (不需要flushall)

PHP FastCGI 的远程利用

©乌云知识库版权所有 未经许可 禁止转载
收藏

分享

为您推荐了适合您的技术文章:

CVE-2014-0038内核漏洞原理与本地提权利用代码实现分析
管中窥豹---分析一个只抓中国肉鸡的DDOS团伙
对移动支付的一些简单安全探测
windows安全日志分析之logparser篇





firexp
2016-06-01 18:19:37
不错,可以发post请求

回复



牛肉包子
2016-06-01 16:50:07
java1.6 xxe中可以用gopher协议列目录

回复



L.N.
2016-06-01 15:23:53
看评论,觉得blackhat和乌云峰会都“好尴尬呀”

回复



mickey
2016-06-01 14:27:22
学习了。。赞

回复



猫猫侠
2016-06-01 13:49:52
@erevus b站的洞修好了吗?还不去反怼一下猪猪侠啊

回复



erevus
2016-06-01 12:49:38
你这都讲完了 让乌云峰会猪猪侠怎么办

回复



von
2016-06-01 12:20:19
仰视dalao

回复



scanf
2016-06-01 12:08:47
赶紧进来点个赞

回复



cf_hb
2016-06-01 11:18:15
学习了

回复



RAyH4c
2016-06-01 11:15:46
这个确实危害严重,今年blackhat那个ffmpeg ssrf的议题应该是讲类似的。

回复



Evi1cg
2016-06-01 10:01:18
赶紧进来点个赞

回复



Sai、
2016-06-01 09:39:20
挺有意思,学习了

回复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: