CTF gopher协议
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可利用的协议有gopher
、dict
、http
、https
、file
等
file
协议可以用于查看文件
dict
协议可以用于刺探端口
gopher
协议支持GET&POST
请求,常用于攻击内网ftp
、redis
、telnet
、smtp
等服务,还可以利用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
脚本生成payload
,gopherus
地址: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协议相关推荐
- php禁用gopher协议,SSRF攻击-运用gopher协议构造POST包--emmmm(http://10.112.68.215:10004/index.php?action=login)...
还是天枢的一道CTF题,启程! 分析题目,自己注册账户并登陆后,提示输入一个url,网站会自己运行查找网页信息. emmmmm,很挑衅,网站就当作服务器,我们在url框中输入一个伪造的执行代码,让他运 ...
- SSRF之GOPHER协议利用
目录 GOPHER协议 GOPHER协议发起的格式 GOPHER利用工具 案例一:CTFSHOW-359关 GOPHER协议 GOPHER协议是一种比HTTP协议还要古老的协议,默认工作端口70,但是 ...
- SSRF中phar协议和gopher协议的利用
我们在学习SSRF漏洞的时候,经常会只关注file协议等,因为利用方式简单.实际上随着php版本的提升和编程技术的规范,能够直接利用的漏洞越来越少了,所以学习使用phar和gopher协议是很有必要的 ...
- 使用curl工具通过Gopher协议发送GET请求
实验环境: web服务器:192.168.31.89(phpstudy搭建web服务) kali:192.168.31.192 浏览器正常请求路径: 1.使用gopher发送GET请求: gophe ...
- 工控CTF之协议分析2——MMS
协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议 ...
- SSRF学习-gopher协议学习
ssrf是攻击者伪造服务器端发起请求的漏洞 读取服务器内部文件 端口扫描 攻击脆弱的内网应用 pikachu靶场 curl_exec() 使用此函数前提 PHP版本>=5.3 开启extensi ...
- SSRF 302跳转 gopher协议攻击redis写入ssh公钥,实现远程无密登录(学习总结)
一.SSRF漏洞 SSRF(Server Side Request Forgery,服务器端请求伪造)是一种攻击者通过构造数据进而伪造服务器端发起请求的漏洞,因为求情是由服务器发出的,所以往往是利用S ...
- 工控CTF之协议分析6——s7comm
协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议 ...
- 刨根问底:Windows CTF协议安全性研究
0x00 前言 我自己经常会编写简单的测试案例,来验证后台处理逻辑与我设想的相符.有时候我无法解释测试结果,会刨根问底,最终挖掘出新的研究方向. 通常情况下,同一个桌面中的窗口之间可以互相通信.这些窗 ...
- CTF Web方向考点总结
CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...
最新文章
- 【前端酷站】分享一个纯 Javascript 的图表库与立体像素风制作~
- ACCV2020国际细粒度网络图像识别冠军方案解读、经验总结
- 无代码iVX编程实现简单 小蜜蜂 经典游戏
- PHP伪造来源HTTP,伪造来源采集http.php
- Java 高级特性 --- 反射
- as和强制类型转换的区别
- cartographer坐标系_cartographer个人对框架解读
- Strut2开发经验总结
- Matplotlib 三维图像 API
- 鸡啄米vc++2010系列7(对话框:创建对话框类和添加控件变量)
- openstack创建虚拟机之后使用ssh登陆的解决办法
- Vue项目npm run dev后 报错Cannot GET /
- html标题%3ctitle%3e,What's a valid HTML5 document?
- java算法-递归算法思想
- 使用Lingo求解简单的线性规划问题
- 中国到美国最安全的飞机航线
- remoting 最简单的一个例子
- python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
- 亚马逊欧洲站的VAT需要多久申报一次
- 华夏出入口车牌识别摄像机