0x01 例题

这儿举例安恒的一道月题

tips:利用ssrf,gopher打内网

0x02 贴出代码

<?php
highlight_file(__FILE__);
$x = $_GET['x'];
$pos = strpos($x,"php");
if($pos){exit("denied");
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"$x");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
echo $result;

0x03分析过程

首先x我们可以控制,
x可利用的协议有gopherdicthttphttpsfile
file协议可以用于查看文件
dict协议可以用于刺探端口
gopher协议支持GET&POST请求,常用于攻击内网ftpredistelnetsmtp等服务,还可以利用gopher协议访问redis反弹shell

首先我们利用file读取文件

先上脚本扫描一下目录,得到flag.php
一般我们还可以读取/etc/hosts/etc/passwd~/.bash_history等文件查看线索

但是代码中有strpos的限制(利用%2570绕过)

最后我们读取/var/www/html/flag.php时发现线索

继续读取/etc/hosts得到一个内网地址

这儿我们得到内网段,我们可以继续扫描,发现只有172.18.0.1|2|3可以访问。
http://101.71.29.5:10012/?x=http://172.18.0.2的返回结果如下图,存在LFI漏洞。

这只是80端口的结果,接下来我们看看其他端口的开放情况,可以看到,25端口也开放了,25对应的就是smtp服务。
于是可以联想到利用gopher协议打smtp,然后再结合之前发现的LFI漏洞,得出这样的思路
利用gopher打smtp,在日志文件中留下一句话木马,然后用LFI包含日志文件获取webshell
思路清晰了后,就开始执行了,先用gopherus脚本生成payloadgopherus地址:https://github.com/tarunkant/Gopherus,里面有详细用法。

将127.0.0.1:25改为内网地址,然后url编码发送过去

然后我们利用包含日志文件
于是我们现在可以去找smtp的日志文件位置了,一般来讲linux中的邮件日志文件路径为

  • /var/log/maillog
  • /var/log/mail.log
  • /var/adm/maillog
  • /var/adm/syslog/mail.log


然后我们直接连接菜刀查看flag

0x04 总结

1、https://bugs.php.net这是一个包含php漏洞的网址

例如我们可以利用谷歌语法搜索
site: [https://bugs.php.net](https://bugs.php.net) strpos

2、ssrf一般先探测主机,然后探测端口,找到对应服务,再利用相应的payload

0x05 链接

复现的题目的时候,环境关了,所以直接用了另外一名师傅的writeup图片,这儿贴出链接,见谅!
链接

CTF gopher协议相关推荐

  1. php禁用gopher协议,SSRF攻击-运用gopher协议构造POST包--emmmm(http://10.112.68.215:10004/index.php?action=login)...

    还是天枢的一道CTF题,启程! 分析题目,自己注册账户并登陆后,提示输入一个url,网站会自己运行查找网页信息. emmmmm,很挑衅,网站就当作服务器,我们在url框中输入一个伪造的执行代码,让他运 ...

  2. SSRF之GOPHER协议利用

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

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

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

  4. 使用curl工具通过Gopher协议发送GET请求

    实验环境: web服务器:192.168.31.89(phpstudy搭建web服务) kali:192.168.31.192 浏览器正常请求路径: 1.使用gopher发送GET请求:  gophe ...

  5. 工控CTF之协议分析2——MMS

    协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议 ...

  6. SSRF学习-gopher协议学习

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

  7. SSRF 302跳转 gopher协议攻击redis写入ssh公钥,实现远程无密登录(学习总结)

    一.SSRF漏洞 SSRF(Server Side Request Forgery,服务器端请求伪造)是一种攻击者通过构造数据进而伪造服务器端发起请求的漏洞,因为求情是由服务器发出的,所以往往是利用S ...

  8. 工控CTF之协议分析6——s7comm

    协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议 ...

  9. 刨根问底:Windows CTF协议安全性研究

    0x00 前言 我自己经常会编写简单的测试案例,来验证后台处理逻辑与我设想的相符.有时候我无法解释测试结果,会刨根问底,最终挖掘出新的研究方向. 通常情况下,同一个桌面中的窗口之间可以互相通信.这些窗 ...

  10. CTF Web方向考点总结

    CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...

最新文章

  1. 【前端酷站】分享一个纯 Javascript 的图表库与立体像素风制作~
  2. ACCV2020国际细粒度网络图像识别冠军方案解读、经验总结
  3. 无代码iVX编程实现简单 小蜜蜂 经典游戏
  4. PHP伪造来源HTTP,伪造来源采集http.php
  5. Java 高级特性 --- 反射
  6. as和强制类型转换的区别
  7. cartographer坐标系_cartographer个人对框架解读
  8. Strut2开发经验总结
  9. Matplotlib 三维图像 API
  10. 鸡啄米vc++2010系列7(对话框:创建对话框类和添加控件变量)
  11. openstack创建虚拟机之后使用ssh登陆的解决办法
  12. Vue项目npm run dev后 报错Cannot GET /
  13. html标题%3ctitle%3e,What's a valid HTML5 document?
  14. java算法-递归算法思想
  15. 使用Lingo求解简单的线性规划问题
  16. 中国到美国最安全的飞机航线
  17. remoting 最简单的一个例子
  18. python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
  19. 亚马逊欧洲站的VAT需要多久申报一次
  20. 华夏出入口车牌识别摄像机

热门文章

  1. Tomcat的作用(自用)
  2. 【Unity3D】导航系统
  3. 三大特征 六大原则结合实践运用
  4. 2018中国方案商500强榜单
  5. 更改浏览器语言(firefox, chrome)详细步骤
  6. 在Edge浏览器中设置编码方式
  7. 电子邮箱地址怎么弄?邮箱格式如何填写?
  8. 局域网常见问题解决方案之你可能没有权限使用网络资源无法访问网上邻居
  9. 购物网站的网站策划书
  10. 学会用Word制作拼音田字格练习本,简单实用更省钱,宝妈必学